Companies blueprint · Enterprise SaaS / CRM
Salesforce: lead to cash on a multi-tenant CRM
A lead from a web form is scored, routed, converted to an opportunity, quoted, closed into an order and handed to service, all inside one shared multi-tenant platform customised through per-org metadata. It must never leak data across tenants or let one org's code or load degrade another's.
- Steps
- 9
- Subjective questions
- 33
- Objective questions
- 33
The problem and the outcome
Problem: Companies lose revenue when leads sit unassigned, quotes are priced inconsistently, and service teams cannot see what sales sold. Each company also needs its own fields, rules and workflows without running separate infrastructure.
Outcome: One customer record flows from first form fill to closed deal to support case, with routing, pricing and AI assistance configured as metadata rather than custom servers. Many tenants share the platform safely, and it is upgraded three times a year without breaking their customisations.
Architecture
How it works, step by step
- Capture: a Web-to-Lead form or API call creates a Lead record in the buyer's org; duplicate and validation rules, defined as metadata, run in the same transaction under governor limits.
- Score: Einstein lead scoring ranks the lead from the org's own conversion history, so reps work likely buyers first rather than oldest-first.
- Route: assignment rules, queues or Flow assign an owner by territory, product or score; escalation timers catch leads left untouched.
- Convert: the rep converts the qualified lead into an Account, Contact and Opportunity in one operation, preserving campaign attribution for pipeline reporting.
- Quote: Revenue Cloud (the publicly announced successor to Salesforce CPQ) applies price books, discounts and approval chains so every quote is consistent and auditable.
- Close and order: at Closed Won the opportunity becomes an order and contract; Platform Events and APIs notify billing and ERP systems asynchronously instead of blocking the user transaction.
- Serve: the same account and assets appear in Service Cloud, where Omni-Channel routes cases by skill and capacity, so support sees exactly what was sold.
- Assist with AI: Agentforce agents answer or draft case replies grounded in org data, passing through the publicly described Einstein Trust Layer (data masking, zero data retention with model providers, audit) and escalating to humans.
- Operate: Salesforce ships three major releases a year (Spring, Summer, Winter); customers test in sandboxes during the release preview window, the public trust site reports status, and AppExchange partners pass a security review before listing.
Tech stack
- Salesforce Platform (Lightning, Flow, Apex, SOQL)
- Sales Cloud and Service Cloud
- Revenue Cloud for quoting and orders
- Einstein and Agentforce with Einstein Trust Layer
- Data Cloud (rebranded Data 360) for unified profiles
- Platform Events, REST, Bulk and Pub/Sub APIs
- Hyperforce on public cloud infrastructure
- Sandboxes, Salesforce DX, scratch orgs and unlocked/managed packages
Key design decisions
- Metadata-driven multi-tenancy: per-org schema and logic are stored as metadata and interpreted at runtime, so one codebase serves every tenant and upgrades never require customers to migrate their own servers.
- Governor limits per transaction (queries, DML, CPU time, heap) protect shared resources; the trade-off is that customer code must be bulkified and long work moved to async Apex or events.
- Clicks before code: Flow and declarative rules handle most routing and approvals, with Apex reserved for logic declarative tools cannot express, keeping customisations upgrade-safe.
- Fixed release cadence with preview sandboxes and versioned APIs, so customers get predictable change windows and older integrations keep working.
- AI grounded in the customer's own CRM data behind a trust layer rather than sending raw records to external models, trading some flexibility for privacy and auditability.
Common mistakes
- Triggers that query or update inside loops hit governor limits as soon as a bulk import or integration sends 200 records at once.
- Overlapping automation (multiple flows, triggers and process rules on one object) causes recursion, unpredictable order and hard-to-debug failures.
- Skipping the sandbox release preview means a seasonal release surprises production users or breaks an integration.
- Treating lead scores or agent answers as truth without monitoring drift, grounding quality and escalation rates.
- Heavy customisation of standard objects that fights the platform model, making upgrades and AppExchange packages harder to adopt.
What to measure
- Lead response time from form submit to first rep touch
- Lead-to-opportunity and opportunity win rates by source and score band
- Quote cycle time and discount approval turnaround
- Case resolution time and share of cases resolved by agents without escalation
- Governor-limit exceptions, API usage against allocation, and platform availability as reported on the trust site
Most-asked interview questions
Subjective questions 33
1How would you design a multi-tenant CRM where every customer can add their own fields and logic?Asked almost every time
I would follow the publicly described Salesforce approach: one shared database and one application, with every row carrying an org ID and every query forced through a filter on it. Custom objects and fields are not real DDL; they are metadata rows describing how generic data columns map to each org's schema, plus pivot and index tables for fast lookups. Business logic like validation, flows and Apex is also metadata, compiled and cached per org. A runtime engine reads that metadata to build queries and screens. To stop noisy neighbours, I enforce per-transaction governor limits and per-org API allocations. This gives one upgrade path for everyone, cheap onboarding, and strong isolation, at the cost of a sophisticated query optimiser and strict limits on tenant code.
2Walk me through lead to cash end to end and point out where the transaction boundaries sit.Asked almost every time
A web form or API call inserts a Lead. Validation, duplicate rules, triggers and assignment rules all run in that one database transaction, so the lead either saves fully or not at all. Scoring runs outside that save path and writes a score field later. Conversion is its own transaction: Account, Contact and Opportunity are created or merged atomically. Quoting and approvals are a series of user transactions with state held on the quote record. At Closed Won, the order and contract are created in the user's transaction. Billing and ERP are told through events published after commit, so they run in separate, asynchronous transactions. Service Cloud reads the same account and asset rows. I keep each boundary small and send cross-system work through events.
3How do you guarantee one tenant can never read another tenant's rows at the data layer?Asked almost every time
Isolation has to come from the platform, not from developers remembering to add a filter. Every shared table carries an org identifier. The platform's query layer turns SOQL into SQL and always adds the org predicate, and customers cannot write raw SQL, so there is no way around it. Indexes lead with the org ID, which also keeps one tenant's scans away from other tenants' data. Caches, search indexes, file storage and async queues are keyed or namespaced by org as well. On top of that I would add per-tenant encryption keys for sensitive fields, automated tests that try cross-org access, and audit logging. Defence in depth matters because a single missing predicate in any subsystem becomes a breach.
4How do you stop a noisy neighbour from degrading other orgs on the same instance?Asked almost every time
I use several layers. Per-transaction governor limits cap SOQL queries, DML statements, CPU time and heap, so no single request can run unbounded. Rolling 24-hour API request allocations cap integration traffic for each org. A concurrency limit on long-running synchronous requests stops one org from tying up the app server threads. Async work goes into queues with per-org fairness, so a huge batch job waits its turn instead of starving others. Under all this sit capacity planning, the ability to move an org to a different instance, and per-tenant monitoring, so operators can see who is consuming resources. The point of a limit is to make sure the cost of bad code lands on the org that wrote it.
5Why notify billing and ERP with events after Closed Won rather than calling them synchronously?Asked almost every time
A synchronous callout puts the ERP's latency and uptime inside the sales rep's save. If ERP is slow or down, the rep cannot close the deal, and a long-held transaction ties up shared platform resources. Publishing a platform event after commit separates the two. The order is saved, the event records the fact, and subscribers process it at their own pace with retries. This also allows one-to-many delivery, so billing, ERP and provisioning can each subscribe. The costs are eventual consistency and more work to operate: idempotent consumers, replay handling, dead-letter monitoring, and an order status field that shows whether downstream systems have confirmed. For a revenue workflow, that trade is worth making.
6How do you make the ERP integration idempotent and recover if the subscriber misses events?Asked almost every time
Each event carries a stable business key, such as the order ID plus a version, and the consumer upserts on an external ID. If the event is delivered twice, the second write does nothing new. The subscriber stores the last replay ID it processed and resumes from it after a restart. That works within the event bus's retention window, which is 72 hours for high-volume platform events. If an outage lasts longer than that, I need a reconciliation job that queries orders changed since a watermark and re-syncs them. Failures that will not succeed on retry go to an error queue with alerts, and the Salesforce order shows a sync status so people can see what is stuck.
7How does the Einstein Trust Layer protect customer data when an agent calls a large language model?Asked almost every time
Salesforce describes the Trust Layer as a gateway between org data and models. Grounding pulls only the records the running user is allowed to see, using normal sharing and field-level security. Sensitive values such as personal identifiers can be masked before the prompt leaves, and put back into the response afterwards. External model providers operate under zero data retention, meaning prompts and outputs are not stored or used for training by them. The layer also screens for prompt injection and toxicity, and writes an audit trail of prompts, responses and feedback. As a designer, I would still limit agent actions to least privilege, because masking does not fix an over-permissioned action.
8Why do governor limits exist, and how do you build lead routing that respects them?Very often asked
Governor limits exist because tenants share CPU, memory and database capacity, so the platform caps what one transaction can consume: number of queries, DML statements, CPU time and heap. Without them one badly written trigger could slow thousands of other orgs. For lead routing, I bulkify everything: a trigger handles the full list of incoming leads, collects keys into sets, runs one query per object outside loops, and does one update at the end. I prefer declarative assignment rules or a record-triggered flow for simple cases. Anything slow, like calling an enrichment API, goes to queueable Apex or a Platform Event subscriber so the user transaction stays fast. Then I test with bulk data loads of hundreds of records, not a single form fill.
9How does a platform ship three major releases a year without breaking customer customisations?Very often asked
The publicly described practices combine several layers. First, API versioning: integrations and Apex classes pin a version, so behaviour changes do not silently apply to old code. Second, release previews: sandboxes are upgraded weeks before production, release notes are published, and customers regression-test their own flows and integrations. Third, critical changes that might break things are often shipped as release updates customers can enable early and test before enforcement. Internally, Salesforce runs customer-written Apex tests at scale against new releases to catch regressions, and deploys in staged waves by instance, with status on the trust site. Customers should own a release checklist: refresh sandbox, run tests, check AppExchange package compatibility, and brief users.
10How would you design duplicate detection at lead capture without making the web form slow?Very often asked
Define matching rules in metadata, such as fuzzy name plus exact email domain, and duplicate rules that either block or allow with an alert. The matching should use indexed or normalised keys, like a lower-cased email or a phone number in a standard format, so each check is a selective lookup and not a scan. The expensive comparisons should only run on a small candidate set. For the public form, I would usually allow the insert and flag the duplicate rather than block it, because losing a real lead costs more than merging later. A periodic batch job can do deeper cross-object fuzzy matching and merging. Bulk loads need the same rules to work on 200-record chunks without querying once per record.
11Design lead routing that assigns by territory and score and escalates untouched leads.Very often asked
Keep the routing logic declarative: one active lead assignment rule, or a Flow, that evaluates entries in order. For example, enterprise leads with high scores go to a named team queue, and other leads go by region. Assigning to queues lets reps pull work, and it avoids keeping a hard-coded rep list. For the SLA, a scheduled path fires a set number of hours after creation. If status is still New and the owner is still a queue, it reassigns the lead or alerts a manager. All logic must be bulk-safe so a 10,000-row import routes in chunks. Watch for ownership skew when one queue owns huge numbers of leads, and spread or archive old leads to avoid lock contention.
12What actually happens during lead conversion, and how do you keep it consistent?Very often asked
Conversion takes one lead and, in a single operation, creates or attaches to an Account, creates or matches a Contact, and optionally creates an Opportunity. Mapped custom lead fields copy across to the target objects. The lead is marked converted, which makes it read-only by default, and it stores the IDs of the resulting records. Because this runs in one transaction, a failing validation rule or trigger on any target object rolls the whole conversion back. That means you never get an orphaned account without its contact. When conversion runs programmatically in bulk, I check each result for errors and design it to be retried, matching existing accounts first so a retry does not create duplicates.
13How would you design a quoting engine with price books, discounts and approval chains?Very often asked
Prices come from versioned price books, and quote lines snapshot the price they used, so a later change in list price does not rewrite history. A rules layer applies bundles, volume tiers and constraints in a defined order. That way the same inputs always give the same total. Discounts above a threshold set an approval-required state. An approval process then routes the quote to the manager, then finance, based on discount depth or deal size. The quote is locked while it is pending. Every decision is written to an audit trail. Heavy pricing calculations should run without blocking the user's request where possible. The trade-off is flexibility against predictability, so I keep the rules data-driven and covered by tests.
14How should an AI service agent decide when to hand a case to a human?Very often asked
I define escalation explicitly rather than trusting the model's judgement alone. Hard triggers include the customer asking for a person, legal or safety topics, billing disputes above a value, and actions the agent is not permitted to take. Soft triggers include low confidence, repeated failed answers, negative sentiment and loops in the conversation. On handoff, the agent passes a summary, the transcript and the case context through Omni-Channel to a skilled human, so the customer does not repeat themselves. I measure containment rate alongside customer satisfaction and wrongful-resolution samples. Optimising containment alone pushes the agent to keep customers it should release.
15How do you enforce record and field security in custom Apex that Flows and agents call?Very often asked
Apex runs in system mode by default, so custom code can see more than the user can. I declare classes with sharing so record-level sharing applies, and run queries in user mode with WITH USER_MODE, or use user-mode DML, so object and field permissions are enforced. Where I need flexibility, I use Security.stripInaccessible to remove fields the user cannot see before returning data. Any elevation of access should be a deliberate, small, reviewed piece of code without sharing. This matters more for AI actions, because an agent invoking an over-permissive method could expose data to a user, or put it into a prompt, that the user should not see.
16Explain data skew and why routing every unassigned lead to one queue can cause failures.Very often asked
Ownership skew means one user or queue owns a very large number of records. Salesforce guidance flags trouble beyond roughly 10,000. Changes to that owner, or to roles and sharing, force expensive sharing recalculations. Parent skew is similar: an account with more than about 10,000 children causes lock contention. Updating a child locks its parent, so parallel loads collide and fail with UNABLE_TO_LOCK_ROW. For lead routing, a single catch-all queue that owns millions of old leads makes sharing changes slow and increases contention. Fixes include spreading ownership across several queues or integration users, archiving or deleting stale leads, placing the owner outside the role hierarchy, and sorting bulk loads by parent ID.
17Why does the platform's order of execution matter when Flows and triggers both act on leads?Very often asked
On save, the platform runs, in order: before-save flows, before triggers, validation, duplicate rules, the save itself, after triggers, assignment rules, after-save flows, then commit, then post-commit work like emails and events published after commit. If a before trigger sets territory but an assignment rule later overwrites the owner, the two fight each other and the result looks random. Updates in after-save logic can also re-fire triggers and cause recursion. I keep one automation owner per object where possible, use before-save logic for field updates on the same record, guard against recursion, and document the order so admins and developers do not undo each other's work.
18How would you load a million historical leads without hitting limits or breaking automation?Very often asked
I would use Bulk API 2.0, which splits jobs into chunks and processes them asynchronously. Before loading, I decide which automation should run. Usually I bypass non-essential triggers and flows using a custom permission or setting checked in code, then run scoring and assignment afterwards in a batch. I load parent records first, sort children by parent ID to reduce lock contention, and use external IDs so retries upsert rather than duplicate. I validate a sample in a full sandbox first. I then monitor failed-row results and reprocess them. Finally, I re-enable the automation and run reconciliation counts against the source.
19What is strongly consistent and what is eventually consistent in this workflow?Very often asked
Inside a single transaction it is strongly consistent: lead insert with its validation and assignment, conversion creating account, contact and opportunity, and the order created at Closed Won. Everything after an event is eventually consistent: billing and ERP sync, provisioning, some search index updates, refreshed lead scores, analytics and rollups computed by async jobs. The design rule is that the user-facing source of truth is updated strongly, while derived or external views catch up. I expose that lag honestly, with a sync status on the order or a timestamp on the score. Reconciliation jobs then catch anything that never caught up.
20An order is created but billing rejects it. How do you handle the partial failure?Very often asked
A distributed transaction across Salesforce and billing is not practical, so I treat it as a saga. The order stays in Salesforce with a status of Pending Billing. The billing consumer publishes a result event back, success or a rejection with a reason. On rejection, the order moves to Billing Failed, a task or case goes to finance operations, and dependent steps like provisioning do not start. Problems that can be fixed, such as a missing tax ID, are corrected and the order is resubmitted idempotently. If the deal is truly invalid, a compensating step cancels the order or reopens the opportunity. Dashboards track orders stuck in intermediate states beyond a time threshold.
21How does lead scoring learn from an org's own history, and what happens for a new org with little data?Often asked
The model trains on that org's past leads, labelled by whether they converted, and uses lead fields and activity as features. It produces a score plus the top contributing factors, so reps can see why a lead ranks high. Because training data stays within the org, one customer's patterns never influence another customer's model. When an org lacks enough conversion history, Salesforce documents falling back to a global model built from anonymised data, until the org has enough of its own. Practically, I would refresh the score asynchronously, store it as a field so routing and list views can sort on it, and watch for drift, for example after a new product launch changes who converts.
22How do you preserve marketing attribution so pipeline reports credit the right campaign?Often asked
The lead's campaign membership is the source of truth. When the lead converts, the new contact inherits the campaign member history, and the opportunity can carry a primary campaign source. Multi-touch attribution uses campaign influence, which links an opportunity to several campaigns its contacts touched. Mistakes that break attribution include deleting leads instead of converting them, creating contacts directly and skipping conversion, and merging duplicates carelessly. So I enforce conversion as the only path and keep campaign member status consistent. Reports should read from the opportunity's influence records, not from copied text fields.
23Explain the trade-off between Publish After Commit and Publish Immediately for platform events.Often asked
Publish After Commit sends the event only if the surrounding transaction commits. If the transaction rolls back, no event goes out, so subscribers never see an order that does not exist. That is the correct choice for business facts like Closed Won. Publish Immediately sends the event right away, whether or not the transaction later fails. That is useful for logging or error events you want even when the transaction rolls back, for example recording that a save failed. The risk with Publish Immediately on business events is phantom messages that downstream systems act on. Publish After Commit can be delivered twice and arrives slightly later, so consumers still need to be idempotent.
24How does Service Cloud see exactly what was sold, and why does one data model matter?Often asked
Sales and service share the same Account, Contact, Asset, Order and Entitlement objects in the same org. When an order is fulfilled, assets or entitlements are created against the account. Support agents see those exact records, with no copy in a separate service database that could drift out of sync. A case links to the account and asset, so entitlement checks and SLAs follow from what the customer bought. The benefits are no sync jobs and one security model. The risks are that sales-side automation or a schema change can affect service users. So I coordinate changes across teams through shared release management and test both journeys in a sandbox.
25How does Omni-Channel route cases by skill and capacity, and what can go wrong?Often asked
Omni-Channel pushes work to available agents instead of having them pick from queues. With skills-based routing, a case needs certain skills, such as a language, a product or a level, and is offered to an agent who has them. Each agent has a capacity, and each work item consumes some of it, so a chat might weigh less than a complex case. Routing respects priority and how long items have been waiting. Failure modes include work sitting unrouted when no agent has the required skill mix, so I need fallback rules that relax skills after a timeout. Another is agents leaving their status as available while away. I monitor queue age and ensure skill rules are derived from reliable case fields.
26How do you keep queries fast on large orgs inside a shared, metadata-driven schema?Often asked
The query optimiser uses statistics for each org and only uses an index when a filter is selective, meaning it matches a small enough share of rows. So I filter on indexed fields: IDs, external IDs, audit dates, or custom fields with requested indexes. I also avoid patterns that defeat indexes, such as leading wildcards, negative filters or comparisons to null on large objects. For very wide objects, skinny tables can serve frequent reports. I would add archiving so hot tables stay small, and check queries with the query plan tool. The multi-tenant twist is that data size and spread differ per org, so a query that is fast in one org can be slow in another.
27How should a customer prepare for one of the three annual releases?Often asked
During the preview window, Salesforce upgrades preview sandboxes several weeks before production. I keep a sandbox on the preview instance, refresh it before the window, and run the full regression: Apex tests, end-to-end tests for lead capture, conversion, quoting and order events, and integration smoke tests against ERP stubs. I read the release notes for features that switch on automatically and for retirements. I also check the trust site's maintenance calendar for my instance's dates. Managed package vendors test too. Anything that breaks gets a fix or a support case before production upgrades, so the release becomes a planned event rather than a surprise.
28What does AppExchange security review protect against, and why do packages use namespaces?Often asked
Partner code runs inside customer orgs, so a vulnerable package exposes every customer who installs it. Security review checks for issues such as injection, cross-site scripting, insecure storage of secrets, missing permission checks and unsafe external endpoints before a listing is approved. Namespaces give each managed package a unique prefix for its objects, fields and classes. That prevents naming collisions with customer customisations and other packages. It also lets the platform track ownership, apply package-level limits and protect the vendor's code. Review is not a one-time guarantee, so vendors also have to keep secure development practices across versions.
29Give a back-of-envelope estimate of event and API load for a large org's lead to cash.Often asked
I state assumptions rather than quote real figures. Say 20,000 leads a day and a 10 percent conversion rate. That gives about 2,000 opportunities a day, and at a 25 percent win rate, about 500 orders a day. If each order triggers three subscribers (billing, ERP, provisioning) and each consumer makes two API calls back for status updates, that is about 3,000 calls a day. Orders are small, but lead capture and enrichment dominate. If enrichment calls an API per lead, that alone is 20,000 calls. I would check these numbers against the org's 24-hour API allocation and event delivery allocation, plan for a five times peak at campaign launches, and batch where possible.
30How would you cache per-org metadata so customisation does not slow every request?Often asked
Every request needs the org's object definitions, fields, validation rules and compiled automation. Reading those from the database every time would be far too slow. So I cache metadata per org, keyed by org ID and a metadata version. When an admin deploys a change, the version increments and the stale entries are invalidated. A multi-level cache works well: in-process for the hottest orgs, plus a shared distributed cache. Compiled code and parsed rules are cached the same way. The hard parts are invalidating every node consistently, and limiting how much cache any one huge org can consume, so it cannot push smaller tenants out.
31How do you prevent a recursive trigger or runaway Flow from damaging an org?Often asked
The platform stops runaway code with governor limits. CPU time, DML statements and queries are capped per transaction, and the transaction rolls back when a limit is hit, so damage stays inside that org and that request. As the developer, I prevent it from happening in the first place. I use one trigger per object with a handler, add recursion guards, only act when the relevant fields have actually changed, and avoid flows and triggers updating each other back and forth. I also make sure tests cover bulk inserts of 200 or more records. In production, I watch Apex exception emails, flow error notifications and event logs, so a near-limit transaction is fixed before data growth pushes it over.
32How should a multi-tenant platform communicate incidents to customers?Sometimes asked
Customers are spread across instances, so status has to be reported per instance and per service, not only as one global green light. A public trust site shows live status, incident history and scheduled maintenance. Customers find their instance and can subscribe to updates. During an incident, I post early, update on a regular rhythm, and separate what is known from what is being investigated. Afterwards, I publish a root-cause summary. Internally, the same per-instance telemetry drives paging, so engineers and customers look at the same picture. Being open costs little and reduces the flood of support cases during an outage.
33What would you monitor to know lead to cash is healthy for a tenant?Sometimes asked
I would track business signals and technical signals together. On the business side: lead capture rate against form submissions, time from lead creation to first touch, how many leads breach the SLA, conversion rate, quotes waiting for approval, orders stuck in pending sync, and case backlog by queue. On the technical side: transactions that come close to governor limits, flow and Apex error rates, API usage against the daily allocation, event publish and delivery failures, and lag between the replay position and the newest event. Event Monitoring and audit trails help investigate who changed what. Alerts should fire on trends, such as a growing sync backlog, not only on hard failures.
Objective questions 33
1A trigger updates related records inside a for loop and fails during a 200-record data load. What is the most likely cause?Asked almost every time
Why: Queries or DML inside a loop multiply with record count, so a bulk load quickly hits per-transaction governor limits; bulkifying the code fixes it.
2What is the per-transaction limit on SOQL queries in synchronous Apex?Asked almost every time
Why: Synchronous Apex allows 100 SOQL queries per transaction. Asynchronous Apex allows 200.
3Which platform event publish behaviour guarantees the event is sent only if the transaction commits?Asked almost every time
Why: Publish After Commit sends the event only after a successful commit, so a rolled-back order never produces an event.
4In the Einstein Trust Layer, what does zero data retention mean?Asked almost every time
Why: Zero data retention is an agreement that third-party model providers will not keep or train on the prompt and response data.
5How many major Salesforce releases ship each year?Very often asked
Why: Salesforce publicly ships three seasonal releases a year: Spring, Summer and Winter, each preceded by a sandbox preview.
6In Salesforce's publicly described multi-tenant architecture, how are a customer's custom fields mainly represented?Very often asked
Why: Custom schema is stored as metadata and interpreted at runtime over shared, org-scoped storage, which avoids per-tenant DDL and allows one upgrade path for all tenants.
7When records are inserted in bulk, how many records does an Apex trigger receive per invocation at most?Very often asked
Why: Triggers process records in chunks of up to 200, so a large load fires the trigger once per chunk.
8How many DML statements can a single Apex transaction issue?Very often asked
Why: The limit is 150 DML statements per transaction. Separately, the transaction can process up to 10,000 rows through DML.
9How does an event subscriber resume from where it left off after a disconnect?Very often asked
Why: Each event has a replay ID. A subscriber can resume from the last ID it processed, as long as that event is still within the retention window.
10Which keyword makes an Apex class respect the running user's record-level sharing?Very often asked
Why: Declaring a class with sharing enforces sharing rules. Apex otherwise runs in system context.
11Which SOQL clause enforces object and field permissions for the running user?Very often asked
Why: WITH USER_MODE runs the query with the user's object, field and sharing permissions applied.
12Parallel data loads updating many children of one account fail intermittently. Which error is most likely?Very often asked
Why: Updating a child record locks its parent, so concurrent updates under the same parent account collide and fail with lock errors.
13Which Trust Layer capability replaces sensitive values before a prompt reaches the model?Very often asked
Why: Data masking substitutes placeholders for identified sensitive data and restores the real values in the response.
14Which API is designed for loading millions of lead records asynchronously?Very often asked
Why: Bulk API 2.0 processes large datasets as asynchronous jobs and handles chunking automatically.
15Which asynchronous Apex type is best for recalculating scores on millions of leads in chunks?Very often asked
Why: Batch Apex splits a large query into scoped chunks, each with its own governor limits.
16Why should the ERP consumer upsert orders on an external ID?Very often asked
Why: Upserting on a stable business key means a redelivered or retried event updates the same record instead of creating a duplicate.
17What is the documented default daily limit for Web-to-Lead submissions in an org?Often asked
Why: Web-to-Lead captures up to 500 leads in 24 hours by default. Submissions beyond that are not created as leads and are reported to the default creator by email instead.
18How many lead assignment rules can be active in an org at the same time?Often asked
Why: Only one lead assignment rule can be active at a time, though it can contain many ordered rule entries.
19How long are high-volume platform events retained on the event bus?Often asked
Why: High-volume platform events are kept for 72 hours. An outage longer than that needs a separate reconciliation process.
20What happens to a lead record after it is converted?Often asked
Why: A converted lead is flagged as converted, stores links to the records it produced, and is read-only for normal users.
21Salesforce guidance warns about ownership skew when one user owns roughly how many records?Often asked
Why: Ownership by a single user or queue beyond about 10,000 records makes sharing recalculations expensive and slows operations.
22Which sandbox type copies all production data and metadata?Often asked
Why: A Full sandbox copies all data and metadata, which makes it suitable for performance tests and full regression testing.
23Omni-Channel offering a Spanish billing case only to agents with matching attributes is an example of what?Often asked
Why: Skills-based routing matches the skills a work item needs with the skills assigned to available agents, within each agent's capacity.
24What is the maximum CPU time for a synchronous Apex transaction?Often asked
Why: Synchronous transactions get 10 seconds of CPU time. Asynchronous transactions get 60 seconds.
25In the save order of execution, when do duplicate rules run?Often asked
Why: Duplicate rules run after before triggers and validation rules but before the record is written to the database.
26Which gRPC-based API lets an ERP system subscribe to platform events and change data capture events?Often asked
Why: The Pub/Sub API uses gRPC to publish and subscribe to platform events and change data capture streams.
27What triggers a MIXED_DML_OPERATION error?Often asked
Why: Setup and non-setup objects cannot be changed together in one transaction because their sharing consequences would conflict.
28Which Salesforce offering provides tenant-controlled encryption of field data at rest?Often asked
Why: Shield Platform Encryption encrypts selected fields and files at rest, with key management options controlled by the tenant.
29Which sandbox type copies metadata but no production data, intended for individual development?Sometimes asked
Why: Developer sandboxes copy configuration only and have small storage limits, so they suit isolated development and unit testing.
30What is the synchronous Apex heap size limit?Sometimes asked
Why: The synchronous heap limit is 6 MB. The asynchronous limit is 12 MB.
31What is the maximum scope size for each Batch Apex execute chunk?Sometimes asked
Why: The default batch scope is 200 records, and it can be set as high as 2,000.
32How do managed AppExchange packages avoid naming collisions with customer customisations?Sometimes asked
Why: A namespace prefix makes each package's objects, fields and classes unique within any org that installs it.
33What is Hyperforce?Sometimes asked
Why: Hyperforce moves Salesforce services onto public cloud infrastructure, which supports regional deployment and data residency needs.
Track your progress through every blueprint in your dashboard.
Start learning