> For the complete documentation index, see [llms.txt](https://docs.santacruzsoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.santacruzsoftware.com/gemini-home/guides/variable-data-printing.md).

# Variable Data Printing (VDP)

Configure and execute bulk data-merges on customized templates using Excel spreadsheet imports.

The Variable Data Printing (VDP) option allows users to merge data from an Excel (`.xlsx`) spreadsheet directly into a designed template, enabling bulk customization of marketing materials, letters, and business cards in minutes.

***

These are the steps:

## Designing the Template (InDesign Guidelines)

To make a template VDP-enabled, the InDesign designer must name the frames where the spreadsheet data should be merged:

* In Adobe InDesign, open the **Layers panel** and click on a text or image frame.
* Name the frame to whatever unique label represents the data (for example, name a frame `Address` or `PhoneNumber`).
* *Note: Frame names should be simple and alphanumeric. Avoid spaces or punctuation except underbars.*

## Preparing the XLSX Spreadsheet

Administrators or designers must prepare a sample spreadsheet that end-users can download and populate:

* **Format**: The spreadsheet must be saved as a modern Excel **XLSX** file.
* **Converting Data**: If records begin in CSV or another spreadsheet format, open the file in Excel and save it as XLSX before upload.
* **Header Row**: The first line of the file must contain column headers that match your InDesign frame names *exactly* (case-sensitive). If you named a frame `Address`, your spreadsheet column header must be `Address`.
* **Character Constraints**: To prevent layout overflows, you can optionally restrict character length by adding the limit inside brackets directly in the column header (e.g., `Address[50]` to limit data to 50 characters).
* **Sample Data**: The second line of the spreadsheet should contain realistic sample data.

## Prepopulating User Details (System Tags)

If the **Prepopulate with user details** setting is enabled under Submissions, BrandingUI can automatically replace placeholder text or image frames with the currently logged-in user's profile details. The template designer must use the following standard system tags:

<table data-search="false"><thead><tr><th>System Tag</th><th>Replaced Content</th></tr></thead><tbody><tr><td>`</td><td>ROLE</td></tr><tr><td>`</td><td>NAME</td></tr><tr><td>`</td><td>COMPANY</td></tr><tr><td>`</td><td>PHONE</td></tr><tr><td>`</td><td>EMAIL</td></tr><tr><td>`</td><td>TIMEZONE</td></tr><tr><td>`</td><td>USERPHOTO</td></tr><tr><td>`</td><td>DEPTLOGO</td></tr></tbody></table>

### Replacement Methods

* **Find and Replace**: Embed tags inside any paragraph (e.g., `"Dear |NAME|,"` becomes `"Dear John Doe,"`).
* **Frame Name Replacement**: Name an entire frame as `|NAME|` or `|USERPHOTO|` to replace its entire content with the profile data.

## End-User Merge Workflow

Once configured, the process for end-users is straightforward:

1. **Download Sample**: The user selects the template and is presented with a page where they can download the sample spreadsheet.
2. **Fill Spreadsheet**: The user modifies the spreadsheet, adding their bulk records (one record per line).
3. **Upload & Merge**: The user uploads their spreadsheet. BrandingUI validates the column headers.
4. **Interactive Check**: The editor loads showing a preview with the first record merged. The user can perform any final individual overrides or styling.
5. **Final Submission**: The user submits the job.

Approvers review the same first merged record in their proof or approval output.

## Queuing and Processing

After approval, VDP jobs are queued for backend processing.

* Depending on the number of records, template complexity, and current queue volume, data merges may take from a few minutes to more than an hour.
* Trying to download final PDFs prior to merge completion will display an informative job status.
* Users receive an automatic email notification the moment the data merge finishes, containing the download link for their high-res outputs.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.santacruzsoftware.com/gemini-home/guides/variable-data-printing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
