Systemized Asset Production

Year 2024
Client Rev Supply Co.
Project Codename Opheim
Technologies Javascript, InDesign
From Chaos to Control: How I Made Creative Ops Run Like Clockwork

A week or two after I signed on with Rev Supply Co. as Digital Marketing Director, I flew out to the company’s headquarters in Santa Ana to meet with the team I inherited. Leading to that point, creative had been the responsibility of two junior-grade graphic designers working onsite. I met with these two first and asked them to walk me through their daily routines, most of which involved creating product assets like diagrams, banners, thumbnails, and more.

Right away, I could tell these designers were hard workers. But I could also plainly see that their methods were a bottleneck to the team’s output. Before I could demonstrate any real improvements to the marketing department under my leadership, this limitation had to be addressed.

Note: The goal of this project was to systemize production of these assets. The assets desperately needed a graphical redesign too, which came not long after with //Ulrich. But that could wait for the time being. First, we needed order.

Sighting The Problem

Nevermind that it's plagued with intellectual property violations. The bigger problem with this graphic is that the designers took over an hour to make it. That's unacceptable.
Nevermind that it's plagued with intellectual property violations. The bigger problem with this graphic is that the designers took over an hour to make it. That's unacceptable.

Since I wanted to get an accurate reading of their everyday productivity, I made sure not to put any undue pressure on my new subordinates. To begin, I simply asked them to demonstrate the creation of a common graphic while I watched, so that I could understand the process. As one designer went through the motions to build what he called a “Cars and trucks banner” (pictured above), he and his partner outlined the steps for me:

  1. Open a shared Excel spreadsheet in OneDrive
  2. Find the SKU they were asked to work on (by email, not project management software)
  3. Find the column marked “Popular Vehicles”
  4. Take note of the first five vehicles listed there
  5. Search for each vehicle on Google Images
  6. For each one, find photos with white backgrounds
  7. Try to find photos taken from angles that complement the others
  8. (If this is not possible, at least collect an assortment of three or four)
  9. Isolate each image (remove white backgrounds) in Photoshop
  10. Move all of the isolated images into a new Photoshop file together
  11. Somewhat align the vehicles in a row
  12. Add text boxes with the vehicles’ names
  13. Add a text heading with a general description of the item
  14. Save the PSD file inside a folder named by the item SKU
  15. Name the file something like “Pickup trucks banner” (doesn’t matter what it’s called)
  16. Export to PNG format

Keep in mind that these were the steps for just one graphic. One of thousands required for thousands of products.

With the “Cars and trucks banner” done, I continued to sit and converse with the designers while they made additional elements for SKU 70K648, a typical M14x1.5 lug nut kit. They didn’t know it, but I was keeping track with the stopwatch on my phone. The table below provides a breakdown.

Asset Name Time to Complete
“Cars and trucks banner” ~ 1:18:00
“Measurements images for A+” ~ 0:32:00
“Measurements infographic” ~ 0:52:00
“Lug seat infographic” ~ 0:37:00
Total ~ 3:19:00

By the time the assets were ready, 3 hours and 19 minutes had gone by. That kind of time is excessive, especially for such simple designs. And the waste doesn’t end there, because construction is supposed to be one stage of an asset’s lifecycle. How would this team have handled a sweeping revision, such as a color change or textual update for the whole catalog?

With their methods, incremental improvement was out of the question, since even small changes would cost a fortune.

Expanding and Utilizing the Product Data Model

My first step was to collect and audit every type of graphic in circulation, and then hold whiteboarding sessions with the creative team. The goal was to document their storytelling methodologies, the purposes behind those methods, and how well the current assets served those purposes.

In doing so, I discovered two root causes of inefficiency. On one side, the creative team’s narrow-minded practices left no path toward scale. On the other, the product data they were expected to work with was underdeveloped. SKUs existed only for sellable items like kits or bulk packs, meaning the company had no way to reference an individual nut. So, designers were left guessing which nut belonged in which diagram. That explained some of the head-scratching, not to mention why no one bothered to organize relevant resources.

To solve this, I introduced a new layer of structure:

  • Piece Index: A unique identifier for the single nut or piece (e.g., 08##48BLK). This gave creatives and engineers a common language for the smallest unit of product representation.
  • Kit Index: A parallel identifier for kits. While a SKU refers to a specific sellable item (e.g., 08K648BLK), the Kit Index (08K#48BLK) denotes the general kit type, regardless of the quantity contained.
  • Natural Parent: A logical grouping based on product lineage. This connects a nut back to its natural grouping as presented in the catalog. For instance, color variants are parented to the standard chrome-colored SKU.
  • Mechanical Parent: A functional grouping based on vehicle fitment. This ensures that when a product appears in a diagram, it’s contextualized correctly within its practical use case.

These attributes did not exist in the product database, which, at the time, was managed in a spreadsheet. I worked with the product team to formally institute them as part of the company’s data model. I also modified the schema for existing attributes, including Category and Series, to better support creative workflows.

That effort laid the groundwork for our later adoption of a full Product Information Management (PIM) software (project //Roller), but even in the interim, it gave us a controlled vocabulary with zero ambiguity.

Below, you can see a small batch of SKUs with their attribute assignments. Next, I’ll explain how I employed these attributes to set up a true Creative Operations Framework (COF).

SKU Category Series Piece Index Kit Index Natural Parent Mechanical Parent “InfoGraphic__Only-For” Layout “InfoGraphic__Only-For” Scope “InfoGraphic__Maker-ET-Caution” Layout “InfoGraphic__Maker-ET-Caution” Scope “InfoGraphic__Large-Lock-Seat” Layout “InfoGraphic__Large-Lock-Seat” Scope “InfoGraphic__Small-Recess” Layout “InfoGraphic__Small-Recess” Scope “InfoGraphic__Check-Before-Purchase” Layout “InfoGraphic__Check-Before-Purchase” Scope “InfoGraphic__Climate” Layout “InfoGraphic__Climate” Scope “InfoGraphic__Check-Lug-Seat” Layout “InfoGraphic__Check-Lug-Seat” Scope “InfoGraphic__Product-Features” Layout “InfoGraphic__Product-Features” Scope “InfoGraphic__Extended-Thread” Layout “InfoGraphic__Extended-Thread” Scope “InfoGraphic__Safe-Installation” Layout “InfoGraphic__Safe-Installation” Scope “DetailHead” Layout “DetailHead” Scope “RetroSpec” Layout “RetroSpec” Scope “RetroCons” Layout “RetroCons” Scope “RetroKsps” Layout “RetroKsps” Scope
081148 NUTS 08-NUTS 08##48 08K#48 081148 081148 Factory Series             ET-Acorn-Seat Generic     Standard Piece Index Standard Piece Index Why Generic Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
081148BLK NUTS 08-NUTS 08##48BLK 08K#48BLK 081148 081148 Factory Series             ET-Acorn-Seat Generic     Standard Piece Index Standard Piece Index Why Generic Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
08K648 NUTS 08-NUTS 08##48 08K#48 081148 08K648 Factory Series             ET-Acorn-Seat Generic     Standard Piece Index Standard Piece Index Why Generic Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
08K648BLK NUTS 08-NUTS 08##48BLK 08K#48BLK 081148 08K648 Factory Series             ET-Acorn-Seat Generic     Standard Piece Index Standard Piece Index Why Generic Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
091144 NUTS 09-NUTS 09##44 09K#45 091144 091144                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
091145 NUTS 09-NUTS 09##45 09K#45 091145 091145                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
091145BLK NUTS 09-NUTS 09##45BLK 09K#45BLK 091145 091145                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
09K544 NUTS 09-NUTS 09##44 09K#44 091144 09K544                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
09K545 NUTS 09-NUTS 09##45 09K#45 091145 09K545                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
131148 NUTS 13-NUTS 13##48 13K#48 131148 131148                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
131148BLK NUTS 13-NUTS 13##48BLK 13K#48BLK 131148 131148                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
131148XL NUTS 13-NUTS 13##48XL 13K#48XL 131148XL 131148XL                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
131167 NUTS 13-NUTS 13##67 13K#67 131167 131167                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
131167XL NUTS 13-NUTS 13##67XL 13K#67XL 131167 131167XL                 Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
231144 NUTS 23-NUTS 23##44 23K#44 231144 231144 Aftermarket Series Nissan Generic     Standard Generic ET-Acorn-Seat Generic         Standard Kit Index Why Generic     Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
231144BLK NUTS 23-NUTS 23##44BLK 23K#44BLK 231144 231144 Aftermarket Series Nissan Generic     Standard Generic ET-Acorn-Seat Generic         Standard Kit Index Why Generic     Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
231148 NUTS 23-NUTS 23##48 23K#48 231148 231148 Aftermarket Series Toyota Generic     Standard Generic ET-Acorn-Seat Generic         Standard Kit Index Why Generic     Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
231148BLK NUTS 23-NUTS 23##48BLK 23K#48BLK 231148 231148 Aftermarket Series Toyota Generic     Standard Generic ET-Acorn-Seat Generic         Standard Kit Index Why Generic     Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
601148 NUTS 60-NUTS 60##48 60K#48 601148 601148 Aftermarket Series         Standard Series Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index
601148BLK NUTS 60-NUTS 60##48BLK 60K#48BLK 601148 601148 Aftermarket Series         Standard Series Acorn-Seat Generic     Standard Piece Index Standard Piece Index     Standard Generic Standard Mechanical Parent Standard Piece Index Standard Piece Index Standard Piece Index

Establishing a Naming Convention

Now, product data was structured in such a way that lines between different products, as well as between products and their constituents, were clearly drawn. And since I had met with both my team and executive leadership to nail down existing concepts as well as storyboard new ones, I knew how to turn those clearly drawn connections into concrete expectations within a smarter creative workflow.

Although complex, the Atlas naming convention is loaded with context for process automations while remaining human-readable. Crucially, the Atlas Method eliminates the need to name files altogether, since output is almost always scripted.
Although complex, the Atlas naming convention is loaded with context for process automations while remaining human-readable. Crucially, the Atlas Method eliminates the need to name files altogether, since output is almost always scripted.

But concrete expectations would only go so far if I let my people keep naming their files “Truck banner thing final.psd.” I needed them to follow a formula, starting with an actual naming convention. The convention I selected was the one set forth in the Atlas Method, a file management philosophy I developed personally in 2021. Feel free to read up on //Atlas. I won’t go into detail about the entire method here, but it’s worth noting that the naming convention is only a part of it. This project borrowed other ideas from it as well.

Mapping Assets to Products

At this juncture, //Roller, our PIM implementation project, had begun and was running concurrently. I knew it would be some time before Roller was fully deployed, but I also knew Opheim depended on it. The controlled vocabulary I had just defined needed to live in the PIM’s schema, where it could be enforced against every SKU. For that reason, one of the very first structures I implemented in Roller was a system of asset mappings.

These mappings defined how each product should connect to its required creative deliverables. For every SKU in the database, I established a set of asset types, each paired with two directives — Layout and Scope.

  • Layout identified which layout variant should be used within a master file.
  • Scope defined the level of product hierarchy the asset should represent.

From just those two attributes, a procedural filename could be generated. Each filename carried a dual role:

  • As instructions for the designer, it told them exactly which layout and which scope to build against.
  • As expectations for the system, it functioned as a contract—if the prescribed file didn’t exist under that name, the asset didn’t exist.

This approach eliminated ambiguity and guesswork, replacing “Truck banner thing final.psd” with deterministic, machine-readable identifiers. In the table below, you can see the generated filenames for the same SKUs listed in the earlier table. Every file became both a directive and a data point, making the creative workflow inseparable from the product database.

SKU Required Graphics (Procedurally Generated)
081148 InfoGraphic__Only-For_Factory__08-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__08##48.jpg; InfoGraphic__Check-Lug-Seat__08##48.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__081148.jpg; RetroSpec__08##48.jpg; RetroCons__08##48.jpg; RetroKsps__08##48.jpg
081148BLK InfoGraphic__Only-For_Factory__08-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__08##48BLK.jpg; InfoGraphic__Check-Lug-Seat__08##48BLK.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__081148.jpg; RetroSpec__08##48BLK.jpg; RetroCons__08##48BLK.jpg; RetroKsps__08##48BLK.jpg
08K648 InfoGraphic__Only-For_Factory__08-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__08##48.jpg; InfoGraphic__Check-Lug-Seat__08##48.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__08K648.jpg; RetroSpec__08##48.jpg; RetroCons__08##48.jpg; RetroKsps__08##48.jpg
08K648BLK InfoGraphic__Only-For_Factory__08-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__08##48BLK.jpg; InfoGraphic__Check-Lug-Seat__08##48BLK.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__08K648.jpg; RetroSpec__08##48BLK.jpg; RetroCons__08##48BLK.jpg; RetroKsps__08##48BLK.jpg
091144 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__09##44.jpg; InfoGraphic__Check-Lug-Seat__09##44.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__091144.jpg; RetroSpec__09##44.jpg; RetroCons__09##44.jpg; RetroKsps__09##44.jpg
091145 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__09##45.jpg; InfoGraphic__Check-Lug-Seat__09##45.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__091145.jpg; RetroSpec__09##45.jpg; RetroCons__09##45.jpg; RetroKsps__09##45.jpg
091145BLK InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__09##45BLK.jpg; InfoGraphic__Check-Lug-Seat__09##45BLK.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__091145.jpg; RetroSpec__09##45BLK.jpg; RetroCons__09##45BLK.jpg; RetroKsps__09##45BLK.jpg
09K544 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__09##44.jpg; InfoGraphic__Check-Lug-Seat__09##44.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__09K544.jpg; RetroSpec__09##44.jpg; RetroCons__09##44.jpg; RetroKsps__09##44.jpg
09K545 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__09##45.jpg; InfoGraphic__Check-Lug-Seat__09##45.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__09K545.jpg; RetroSpec__09##45.jpg; RetroCons__09##45.jpg; RetroKsps__09##45.jpg
131148 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__13##48.jpg; InfoGraphic__Check-Lug-Seat__13##48.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__131148.jpg; RetroSpec__13##48.jpg; RetroCons__13##48.jpg; RetroKsps__13##48.jpg
131148BLK InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__13##48BLK.jpg; InfoGraphic__Check-Lug-Seat__13##48BLK.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__131148.jpg; RetroSpec__13##48BLK.jpg; RetroCons__13##48BLK.jpg; RetroKsps__13##48BLK.jpg
131148XL InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__13##48XL.jpg; InfoGraphic__Check-Lug-Seat__13##48XL.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__131148XL.jpg; RetroSpec__13##48XL.jpg; RetroCons__13##48XL.jpg; RetroKsps__13##48XL.jpg
131167 InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__13##67.jpg; InfoGraphic__Check-Lug-Seat__13##67.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__131167.jpg; RetroSpec__13##67.jpg; RetroCons__13##67.jpg; RetroKsps__13##67.jpg
131167XL InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Product-Features__13##67XL.jpg; InfoGraphic__Check-Lug-Seat__13##67XL.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__131167XL.jpg; RetroSpec__13##67XL.jpg; RetroCons__13##67XL.jpg; RetroKsps__13##67XL.jpg
231144 InfoGraphic__Only-For_Aftermarket__23-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Maker-ET-Caution_Nissan__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__GENERIC.jpg; InfoGraphic__Product-Features__23K#44.jpg; DetailHead__231144.jpg; RetroSpec__23##44.jpg; RetroCons__23##44.jpg; RetroKsps__23##44.jpg
231144BLK InfoGraphic__Only-For_Aftermarket__23-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Maker-ET-Caution_Nissan__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__GENERIC.jpg; InfoGraphic__Product-Features__23K#44BLK.jpg; DetailHead__231144.jpg; RetroSpec__23##44BLK.jpg; RetroCons__23##44BLK.jpg; RetroKsps__23##44BLK.jpg
231148 InfoGraphic__Only-For_Aftermarket__23-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Maker-ET-Caution_Toyota__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__GENERIC.jpg; InfoGraphic__Product-Features__23K#48.jpg; DetailHead__231148.jpg; RetroSpec__23##48.jpg; RetroCons__23##48.jpg; RetroKsps__23##48.jpg
231148BLK InfoGraphic__Only-For_Aftermarket__23-NUTS.jpg; InfoGraphic__Extended-Thread_Why__GENERIC.jpg; InfoGraphic__Maker-ET-Caution_Toyota__GENERIC.jpg; InfoGraphic__Check-Before-Purchase_ET-Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__GENERIC.jpg; InfoGraphic__Product-Features__23K#48BLK.jpg; DetailHead__231148.jpg; RetroSpec__23##48BLK.jpg; RetroCons__23##48BLK.jpg; RetroKsps__23##48BLK.jpg
601148 InfoGraphic__Only-For_Aftermarket__60-NUTS.jpg; InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__60-NUTS.jpg; InfoGraphic__Product-Features__60##48.jpg; InfoGraphic__Check-Lug-Seat__60##48.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__601148.jpg; RetroSpec__60##48.jpg; RetroCons__60##48.jpg; RetroKsps__60##48.jpg
601148BLK InfoGraphic__Only-For_Aftermarket__60-NUTS.jpg; InfoGraphic__Check-Before-Purchase_Acorn-Seat__GENERIC.jpg; InfoGraphic__Small-Recess__60-NUTS.jpg; InfoGraphic__Product-Features__60##48BLK.jpg; InfoGraphic__Check-Lug-Seat__60##48BLK.jpg; InfoGraphic__Safe-Installation__GENERIC.jpg; DetailHead__601148.jpg; RetroSpec__60##48BLK.jpg; RetroCons__60##48BLK.jpg; RetroKsps__60##48BLK.jpg

Corraling Assets in InDesign

With mappings defined and filenames procedurally generated, the next challenge was where to anchor the work. It wasn’t enough to define assets in the PIM; those assets needed a production environment that could hold them together, enforce consistency, and make large-scale updates effortless. For Opheim, that environment was Adobe InDesign.

InDesign excelled here because so much could be centralized inside the file itself. A single .INDD file wasn’t just a canvas—it was a container of rules.

  • Master Pages established repeatable structures for layouts, grids, headers, and callouts. Editing a master updated every linked page automatically.
  • Object Styles standardized the look of recurring elements—annotation arrows, product callouts, or technical frames—so a tweak to one definition cascaded everywhere it was used.
  • Paragraph and Character Styles locked down typography across captions, labels, and SKU numbers, eliminating drift and guaranteeing uniformity.
  • Linked Ingredients like illustrations, icons, swatches, or copy blocks were referenced directly, giving designers a single source of truth that updated predictably across every dependent layout.
Inside the master file for every asset, almost everything was modular and design aspects were globally defined. This enabled design improvements to be made easily over time and applied not only to graphics made from that point forward, but also those made before. The templates within the master file even featured localized text for different languages, starting with English and Spanish, as shown here.
Inside the master file for every asset, almost everything was modular and design aspects were globally defined. This enabled design improvements to be made easily over time and applied not only to graphics made from that point forward, but also those made before. The templates within the master file even featured localized text for different languages, starting with English and Spanish, as shown here.

This meant assets were no longer maintained one by one; they were managed as systems. Change a type hierarchy, and thousands of product diagrams updated. Adjust a swatch or object style, and entire series of assets shifted instantly.

Just as important was the day-to-day speed this unlocked for designers. In stark contrast to the old clunky Photoshop-based workflow, InDesign templates turned repetitive work into a seamless flow. A designer could keep a file manager open on one screen and InDesign on the other, dragging new images directly into predefined frames. Instantly, those images became linked files and had all required styles applied. Aside from a little refitting here and there, the template did the rest.

Scripting File Output

The final step was to bridge production with delivery. With assets corralled inside InDesign, consistent naming enforced by the Atlas Method, and mappings established in the PIM, the last piece was to automate output. For this, I turned to Adobe ExtendScript.

ExtendScript gave me direct programmatic control over InDesign’s export functions. Instead of designers manually exporting things one by one, guessing at filenames, and saving to arbitrary folders, a single script could do all of this in a deterministic, repeatable, sensible way.

This one “does it all” script I wrote for my graphic design team ensures assets are exported in the right format, in the right directory, and with exactly the right filename. All the designer needs to do is type in the SKU number they're working on in each correlating spread.
This one “does it all” script I wrote for my graphic design team ensures assets are exported in the right format, in the right directory, and with exactly the right filename. All the designer needs to do is type in the SKU number they're working on in each correlating spread.

The script pulled data directly from the PIM mappings, ensuring that every exported rendition carried the correct filename, complete with Scope, Layout, etc. Output destinations were also automated. This meant designers didn’t even need to think about filenames or folder hierarchies; the system handled it. All of it.

The impact was twofold:

  • Error elimination: no more misnamed files, misplaced assets, or skipped variants. Scripts enforced the naming convention without exception.
  • Mass scalability: hundreds of assets could be exported in minutes, freeing designers from rote tasks and keeping production aligned with schedules.

By combining InDesign’s centralization with scripted output, Opheim delivered a workflow that was faster, cleaner, and virtually immune to human error.

Result: Output Skyrockets by 276%

This screen capture shows the production process of a new “DetailHead” graphic. Including search and download of licensed stock photos, these took an average of 11 minutes to make. That's 86% faster than the 1 hour and 18 minutes it took to create the outgoing graphic, and the new graphic is superior.

By the time Opheim reached steady state, the combined effect of Atlas naming, PIM-driven mappings, InDesign centralization, and scripted output was clear: production speed had transformed. What once required tedious manual setup in Photoshop was now reduced to a streamlined sequence in InDesign, backed by automation and enforced consistency.

The table below shows a sample set of assets produced under the new framework. Each figure represents the average time it took to prepare and export a finished rendition, compared with the prior process.

Asset Name Before Systemization After Systemization Time Reduction Output Gain
DetailHead ~ 1:18:00 ~ 0:11:00 86% 609%
RetroSpec ~ 0:32:00 ~ 0:14:00 56% 129%
InfoGraphic__Product-Features ~ 0:52:00 ~ 0:24:00 54% 117%
InfoGraphic__Check-Lug-Seat ~ 0:37:00 ~ 0:04:00 89% 825%
Total ~ 3:19:00 ~ 0:53:00 73% 276%

These numbers tell the story: output time was cut by nearly three-quarters across a representative workload. Assets that previously consumed half an hour or more could be completed in minutes, while simpler graphics dropped to almost negligible times.

The improvement wasn’t just speed. Accuracy rose in parallel, since filenames were generated systematically and assets flowed into the right destinations automatically. Designers spent their energy on creative choices, not repetitive prep, and the organization gained confidence that production would scale predictably with demand.

Opheim’s 73% improvement was not an incremental gain but a step change — proof that a disciplined operations framework, when coupled with the right technical implementation, can redefine what’s possible for a creative team.

Contact Me

Driven by insight, not blind hope
I wouldn't be much of a marketing expert if I didn't collect data. So, please accept these terms.

Notice

We and selected third parties collect personal information as specified in the privacy policy and use cookies or similar technologies for technical purposes and, with your consent, for functionality, experience, measurement and “marketing (personalized ads)” as specified in the cookie policy.
With respect to advertising, we and 1054 selected , may use precise geolocation data, and identification through device scanning in order to store and/or access information on a device and process personal data like your usage data for the following : personalised advertising and content, advertising and content measurement, audience research and services development.
You can freely give, deny, or withdraw your consent at any time by accessing the preferences panel. If you give consent, it will be valid only in this domain. Denying consent may make related features unavailable.

Use the “Accept” button to consent.