PD
ProgrammaticDesign
Back to Blog
Tutorials
9 min read2026-02-28

Why InDesign's Data Merge is Broken for Real Work (And What to Do About It)

I've been using InDesign's native data merge since CS4. It works great until you have more than one record type, or need conditional content, or want to preview without exporting. Here's what I've switched to and why.

I want to be upfront about something: for simple, flat data, InDesign's native data merge works fine. A spreadsheet of 200 names going into a single text frame on a business card? That's exactly what the tool was built for, and it does it well.

The problems start the second your data gets complicated.

The three failure modes I see over and over

First: nested or repeating data. Native data merge assumes one row = one page. The moment you have a product with multiple variants, a catalogue entry with a variable number of features, or anything where rows map to sub-items rather than pages, you're stuck. The tool cannot express that structure.

Second: conditional content. "Show the premium badge only if tier = 'premium'". Native merge has no conditional logic at all. You end up with show/hide hacks using white-on-white text, which breaks the moment someone changes a font or style.

Third: preview. To see what your merged document looks like, you have to actually run the merge and generate a new document. For a 500-page catalog, that takes two minutes per iteration. I've watched designers spend entire afternoons in that loop.

What I use instead

For anything beyond the simplest use case, I write a script. Usually ExtendScript, sometimes UXP if the client is on a recent enough version. The script reads the data source directly — a CSV, a JSON file, or in larger setups a direct database connection via a REST API call.

The main advantages:

  • I can express any data structure, including nested arrays and conditional logic
  • I can preview changes instantly by just re-running the script on a single page
  • I can do things merge simply cannot, like generating multiple versions of the same page or reusing the same frame configuration across different document templates

For teams that need a GUI and don't want to touch code, EasyCatalog is the commercial solution I recommend. It's expensive — around $400 per seat — but if you're doing serious catalog work it pays for itself in a day.

The middle ground

If you're doing simple merges but hitting the preview limitation, there's a workaround: merge to a new document, check your work, close without saving, fix the template, repeat. It's not elegant but it's faster than waiting for a 500-page document to regenerate every time.

The real lesson is that native data merge is a proof-of-concept tool that Adobe never fully developed. It was adequate in 2005. Professional publishing workflows in 2026 have outgrown it.

Questions about automating your InDesign workflow?

Get in touch
Why InDesign's Data Merge is Broken for Real Work (And What to Do About It) — Programmatic Design | Programmatic Design