Copy an image. Paste it into a Case post. Keep going.
Install · Use it · How it works · Settings · Privacy
CasePaste turns the tiny Salesforce interruption that breaks your rhythm into the interaction you expected in the first place. Paste an image into a Case Feed post and it is automatically:
- uploaded to the Case’s Files,
- placed inline at your cursor, and
- confirmed with a toast that sounds and looks the way you want.
Salesforce’s “Can’t publish a pasted image” banner never gets a chance to interrupt you.
Tip
The big banner above is clickable. It jumps straight to installation because apparently we’re a clickable-banner project now, and honestly that feels right. 😅
| You do this | CasePaste quietly does this |
|---|---|
| 📋 Copy a screenshot or image | Recognizes image clipboard data only when you paste |
| 📍 Put the cursor in Feed → Post | Remembers the exact inline position |
| ⌘/Ctrl + V | Uploads a Salesforce File and links it to the Case |
| ✍️ Keep typing | Replaces the temporary marker without stealing your cursor |
| ✅ See the toast | Confirms the file and inline image both landed |
|
|
|
|
There is no popup to open and no upload dialog to babysit. A small Uploading image marker holds your place for a moment, then becomes the uploaded image. Once both jobs are done, CasePaste shows a friendly confirmation toast.
That toast is yours to shape. Change its words, accent color, corner, and time on screen – or turn successful notifications off entirely. Error notices always stay on so a failed upload never disappears quietly.
- Paste-native: works with screenshots, copied image files, and inline data-URL images.
- Case-aware: finds the Case from Lightning navigation or the surrounding record context.
- Cursor-safe: keeps a live position marker while Salesforce receives the file.
- Multiple-image friendly: pastes several images in clipboard order.
- Salesforce-native: hands the paste to the editor’s own Images-button uploader instead of requiring a separate API login.
- Low-permission: no blanket clipboard access, cookie-reading permission, or telemetry.
- Theme-conscious: the settings page and toast honor light mode, dark mode, and reduced motion.
CasePaste runs in Chrome 114 or newer. Installation takes about a minute:
- Open the latest CasePaste release.
- Under Assets, download
CasePaste-for-Salesforce-vX.X.X.zip. - Extract the downloaded ZIP somewhere you plan to keep it. Chrome needs the extracted folder, not the ZIP itself.
- Open
chrome://extensionsin Google Chrome. - Turn on Developer mode in the upper-right corner, if it isn't already.
- Choose Load unpacked, then select the extracted folder containing
manifest.json. - Refresh any Salesforce tabs that were already open.
Click the CasePaste toolbar icon whenever you want to open its settings.
Important
Loading or reloading an extension does not update Salesforce tabs that are already open. Refresh those tabs once so CasePaste can join the page.
Installing from the source repository instead?
Clone or download the repository, then choose its top-level folder when Chrome asks you to Load unpacked. There is no build step; the checked-in source is ready for Chrome.
Download and extract the newer release, replace the files in your existing CasePaste folder, click Reload on its chrome://extensions card, and refresh your open Salesforce tabs.
Open a Case record in Salesforce Lightning, go to Feed → Post, click where the image should appear, and paste. That’s the whole daily workflow.
CasePaste supports:
- screenshots copied from macOS, Windows, or Chrome;
- copied image files;
- browser clipboard images;
- clipboard images supplied as data URLs; and
- multiple images in one paste.
Each image becomes its own Case File and stays in clipboard order. Files receive useful, unique names such as CasePaste-2026-08-31T14-32-08Z.png. The prefix and maximum accepted paste size are adjustable on the options page.
CasePaste runs only on Salesforce pages. When an image paste reaches a Salesforce rich-text editor on a Case:
- Catch: it intercepts the paste before Salesforce displays its warning.
- Remember: it leaves a temporary marker at the cursor so you can keep typing.
- Upload: it invisibly drives Salesforce’s Select Image flow, supplies the clipboard file without opening a picker, selects the new upload, and confirms insertion. Unsupported or oversized formats are converted to a Salesforce-compatible image under the native uploader’s 1 MB limit.
- Place: it swaps the marker for the authenticated Salesforce image and tells the editor its content changed.
- Confirm: it shows the customized success toast only after both upload and inline placement succeed.
For older editors without a usable Images button, the backup REST route discovers the org's API version at runtime instead of pinning your team to one Salesforce release.
Curious about the more technical version?
The content script handles the paste event, clipboard image extraction, Case detection, selection tracking, warning suppression, and editor updates. It never reads the Salesforce session value.
A small main-page bridge temporarily intercepts the inherited browser file-picker method and supplies a real browser File built from the paste. The content script keeps Salesforce’s intermediate Select Image modal hidden while it triggers Upload Image, selects the uniquely named upload, and presses Insert. Salesforce’s component still performs its normal org upload, record sharing, permanent-URL replacement, and Quill insertion. The bridge immediately restores the browser method after that single handoff.
If an older editor has no usable Images button, CasePaste retains its validated, chunked ContentVersion service-worker route as a fallback.
The temporary editor element also carries a live DOM Range. If Salesforce normalizes the marker before the network request returns, CasePaste still has a cursor-relative fallback for inline placement.
The options page stores preferences with Chrome sync when sync is available:
| Setting | What it changes |
|---|---|
| Catch pasted images | Enables or pauses CasePaste without uninstalling it |
| File name starts with | Replaces the default CasePaste prefix |
| Upload spinner | Customize spinner/text color, badge background, ring or dotted style, and animation speed with a live preview; honors reduced motion |
| Maximum image size | Accepts 1–200 MB; defaults to 25 MB |
| Show success toast | Keeps confirmations visible or works silently |
| Heading and message | Supports {filename}, {caseId}, and {count} tokens |
| Corner, accent, duration | Controls where the toast appears and how it feels |
The page follows the browser or operating system light/dark preference automatically and respects reduced-motion settings. A live preview shows the toast while you edit it.
CasePaste asks for access to Salesforce domains and Chrome storage—nothing more.
- Direct destination: pasted images go from the active Salesforce tab to your Salesforce org.
- No third party: no image, Case data, session value, or usage data is sent elsewhere.
- No cookie reading: the extension never asks Chrome to reveal session cookies.
- No blanket clipboard access: CasePaste sees image data only when you actively paste into a supported editor.
- No telemetry: there are no analytics, trackers, beacons, or remote scripts.
Your Salesforce permissions still apply. A user needs permission to add images and Files to the Case. The normal Images-button path does not require CasePaste to make a separate API login; the backup route for older editors also depends on an API-enabled session. If Salesforce refuses an upload, CasePaste removes the temporary marker and explains the problem without changing the rest of the post.
Note
Org security policies still win. If your Salesforce administrators customize or block file uploads or downloads, CasePaste will not work around that policy.
- Confirm that you are on the Case record itself, not a list view or detached utility panel.
- Refresh the Salesforce tab after installing or reloading the extension.
- Make sure the image is below the size limit shown in CasePaste settings.
- Confirm Salesforce's regular Images button can add an image to the same post box.
- For an older editor where that button is unavailable, ask a Salesforce administrator to confirm your profile can create Files and use the REST API.
- Check whether an org security policy customizes or blocks ContentVersion uploads or file downloads.
There are no runtime dependencies and no build step. The checked-in folder is the extension.
npm test
npm run checknpm testruns the shared helpers, a simulated native Images-button handoff, and an authenticated chunked multipart upload.npm run checkvalidates JavaScript syntax, manifest references, icon dimensions, version documentation, and extension-page script policy.
All notable work belongs in CHANGELOG.md, starting with version 0.1.0. Generated packages, signing keys, local browser profiles, secrets, caches, editor state, and test output are kept out of the public repository through .gitignore.
If CasePaste makes your Salesforce day a little easier, these projects might help too:
| Project | What it does |
|---|---|
| SFSaver | Protects Salesforce Email, Post, Log a Call, and note drafts from refreshes and unexpected UI resets. |
| salesforce-bulk-downloader | Adds a Download All action for Salesforce Files, with flexible folder, filename, and duplicate handling. |
| salesforce-post-character-counter | Adds a configurable, real-time character counter to Salesforce Post editors. |
| salesforce-mega-composer Beta | Makes Salesforce Post and Email composers resizable with presets and customizable controls. This one is still growing. |
CasePaste is an independent project.
It is not affiliated with or endorsed by Salesforce. “Salesforce” is used only to identify compatibility.