The component works perfectly in the demo and then nobody on the team opens it after week one.
Reps stop using a new Lightning Web Component for one of three reasons. It takes more clicks than the habit it was supposed to replace. It ignores how the team already works instead of fitting into it. Or it tries to do five things at once instead of one thing well. None of these are coding problems. All three show up before a single line of Apex or JavaScript gets written.
Why custom components get built and then ignored
A component usually gets commissioned after someone watches a rep struggle with a slow, multi screen process and thinks a custom screen would fix it. The build goes well. The demo gets applause. Then the component ships, and three weeks later the usage report shows four clicks in the first week and zero since.
- Too many clicks. A component that replaces one click with three fields, a dropdown and a confirm button has not saved anyone time, no matter how clean the layout looks.
- Ignoring existing habits. Reps already have a path they trust, even an ugly one. A component that asks them to abandon that path for an unfamiliar one needs to be clearly faster from the very first use, not just more elegant.
- No single clear purpose. A component trying to show account health, let someone log a call and update three fields at once usually does all three worse than three focused components would do separately.
The planning step that happens before any code
Before opening VS Code, write down the one task this component should make faster, in one sentence. Not a feature list. One sentence, one task, one measurable before and after.
A sentence like reduce logging a support call from six clicks across three tabs to one click on the case record gives a developer something to build toward and something to test against later. A sentence like give reps better visibility into their accounts gives a developer nothing to aim at, and nothing to test when the thing ships.
If the task cannot be written in one sentence, it is not one component yet. Split it, and build the one with the clearest, most frequent pain first.
UI patterns that actually work inside Salesforce
Salesforce has its own visual language, and components that lean into it get adopted faster than ones that fight it. A few patterns worth defaulting to.
Keep editing on the record page, not behind a new screen
Inline editing beats a modal for small, frequent changes. A field that opens into edit mode in place, saves, and shows a quick confirmation keeps a rep in the context they were already in. A full screen form for a one field update adds a navigation round trip that a rep will route around within a week.
<template>
<lightning-input
label="Next Step"
value={nextStep}
onchange={handleChange}
onblur={handleSave}>
</lightning-input>
<template if:true={showSavedToast}>
<span class="slds-text-color_success">Saved</span>
</template>
</template>Use toast and inline messaging, not a blocking popup
A toast that confirms an action and fades out respects the rep's attention. A modal that demands a click to dismiss, for something that was not actually risky, trains people to click through it without reading, which defeats the point of a confirmation in the first place. Reserve a blocking dialog for the handful of actions that are genuinely hard to undo.
Put the component where the task already happens
A utility bar item or a Lightning page region on the record someone is already viewing gets used. A separate app or tab that requires navigating away from the record a rep is working on mostly does not, because it asks for a context switch for a task that used to need none.
Design for the default state, not the empty state
Most component demos get built and shown with ideal sample data. The real test is what a rep sees on a messy, ordinary Tuesday. A component that shows a wall of blank fields or an unhelpful empty state the first ten times someone opens it will get written off as broken, even when it works exactly as designed once data exists.
Testing with real users before rolling out org wide
A component that passed every unit test can still fail completely on first contact with a real rep, because unit tests check behavior, not instinct. Before a full rollout, hand the component to three to five people who do the job daily, not the admin who requested it and not the developer who built it.
- Watch rather than explain. If someone cannot find the button without being told where it is, the layout needs work regardless of how the logic performs.
- Time the real task against the old process, not against a stopwatch in a vacuum. The one sentence from the planning step is exactly what gets measured here.
- Ask what they expected to happen before telling them what actually happens. The gap between those two answers is usually the first bug report.
- Roll out to that same small group for a full week before opening it to everyone, since a problem that only appears on day four of real use never shows up in a thirty minute pilot session.
A component earns its place on a record page the same way a feature earns its place in a product. It gets used again tomorrow without anyone being reminded it exists.
Testing the logic underneath is the other half of the job. See our guide to Apex unit test best practices, or check whether your org is ready for new components with a Salesforce Health Check.