The file came back from the client at 11:47 on a Tuesday night. Rejected. Not because the retouching was wrong, not because the color was off. Because every JPEG in the batch had been saved at 72 PPI instead of 300, and the print vendor had already started a press run. I was three years into running my own post-production consultancy at that point, and that was the last time I ever let an export step live inside my head instead of inside an action.

Export workflows sound boring. They are, a little. But they’re also the last thing standing between your work and the world, and most photographers treat them like an afterthought, a quick Save for Web before they call it done. After 15 years working in commercial photography studios and now handling deliverables for ad agencies and e-commerce clients, I can tell you that the export step is where batches fail, where color shifts happen, and where otherwise solid work gets kicked back.

What Photoshop Actually Does When You Export (And Why It Matters)

When you use Save for Web, Export As, or a plain Save As through an action, Photoshop is making decisions you may not realize it’s making. Metadata gets stripped or kept based on settings you configured once and probably forgot. Color profiles get converted, embedded, or discarded depending on which export path you chose. Resolution metadata is written independently of actual pixel dimensions, which is how that 72 PPI disaster happened. The file looked identical on screen. The pixel count was correct. But the PPI tag was wrong because my action was pulling from a template I hadn’t audited in two years.

The underlying issue is that Photoshop’s export options aren’t unified. Save for Web, Export As, and Save As all behave differently with color profiles and metadata. Save for Web, for instance, converts to sRGB by default if your document is in a different color space, which is great for web and catastrophic if your client is expecting AdobeRGB TIFFs for print. Export As gives you more control but doesn’t play as nicely with batch processing via Actions. Knowing which pipeline to use, and locking it into an action, is the only way to guarantee consistent output.

Building an Export Action That Won’t Lie to You

The structure I use for most client deliveries runs like this. The action opens the flattened working file, runs a Flatten Image step, converts the color profile explicitly rather than assuming, resizes to the target dimensions using Image Size with Resample set to Preserve Details 2.0 for downsampling or Preserve Details (Enlargement) for any upscale work, then saves using Save As with a naming token that includes the resolution suffix in the filename itself, something like filename_300ppi.jpg. That last part is a small thing that has saved me from client confusion more times than I can count.

For web e-commerce batches, I run a separate action chain. Target size is 2000px on the long edge, sRGB IEC61966-2.1, quality 9 (not maximum, because maximum JPEG quality at 2000px often pushes files past 2MB with no visible benefit), and metadata stripped except for copyright. That profile hits the sweet spot for Shopify, Amazon, and most mid-market retail platforms without triggering their automatic recompression penalties, which kick in at different thresholds depending on the platform but typically hit hard above 2.5MB.

The Batch Sequence That Processes 500 Files While You’re at Lunch

A few years ago I spent a Saturday afternoon building out a Droplet-based batch system for a cosmetics client who needed 500 product shots turned around by Monday. By Sunday at noon, the whole batch was processed, color corrected, resized, watermarked, and exported to three separate folders: one for web, one for print, one for social crop variants. The Droplet handled folder routing based on a filename suffix the photographer had baked into the RAW file names during import.

The setup took about four hours across that Saturday. It has since run variations of that same job probably 60 times for different clients. I track this in a spreadsheet, and the time savings from that single Droplet system alone is sitting at somewhere north of 300 hours. The build time is almost always worth it by the third or fourth run.

The key to making Droplets reliable is locking down your source file state before the action touches anything. I always include a step that converts to a specific color profile at the top of the action, before any adjustment, so it doesn’t matter what profile the incoming file carries. That one step has eliminated an entire category of color inconsistency that used to bite me regularly.

Where Export Actions Break (And How to Catch It Before the Client Does)

Actions fail silently more often than they fail loudly. The file still exports. It just exports wrong. The two most common failure points I’ve seen are conditional steps that skip when they shouldn’t (usually tied to document state, like whether a layer is visible or a path is active) and naming conflicts that cause Photoshop to default to overwriting without warning.

My fix for both is a QC action that I run on a random 5% sample of any batch over 100 files. It opens the exported JPEG, uses the Info panel to log the resolution and dimensions to a text file via a Script step, then closes without saving. That log file takes about 30 seconds to scan and has caught bad exports before they went to a client at least a dozen times in the last two years. It’s not glamorous. It’s a text file. But it’s the kind of check that separates a professional delivery pipeline from a lucky one.

Naming Your Files Like Your Clients Are Paying Attention (They Are)

File naming is technically part of the export workflow and it is treated like an afterthought everywhere I’ve ever worked until something goes wrong. Client asset libraries have logic. DAM systems have intake rules. A file named IMG_4872_final_v3_REALLYFINAL.jpg will get rejected by any serious asset management system and will cause genuine problems at agencies that auto-ingest by filename pattern.

I build naming conventions into the action itself using Photoshop’s built-in filename tokens: document name, two-digit date, sequence number, and a resolution suffix. That pattern, locked in at export, means every file that comes out of my pipeline is identifiable, sortable, and ingestion-ready without any manual renaming step downstream.

The most expensive export mistake you can make isn’t a wrong setting. It’s trusting that you’ll remember to check the settings when you’re on file 487 of 500 at the end of a long day. Build the check into the machine.