Your custom tutorial is ready!
Please follow these steps

1 Datasource preparation & import

  • Must contain more than one data column/title (you can disable this behavior in the import preferences if you have a csv with one column only)
  • Cannot contain line breaks inside of the data (just at the end of each data record)
  • Each flied has to be separated by one of the following characters: semicolon, comma, tab or vertical bar
  • Has to be encoded as MacOS Roman, UTF-8 (recommended), UTF-16BE, UTF-16LE, UTF-32BE or UTF-32LE

Drag and drop your CSV file on the CSV icon or select a file by clicking the folder icon. Note: If you have Excel installed and running, you might see an Excel icon instead. You can still drop your csv file [1] on it and it will change to a CSV icon.

Then the settings will pop up. You must select the correct delimiter and encoding or the import will fail. The other options are optional:

Sanitize
With this option turned off, individual fields will be imported exactly like they are found in the .csv file. If you want these fields to be cleaned (surrounding double quotes stripped, characters unescaped, etc.) you can turn this option on.

Backslash as escape
This option allows you to import files where special characters are escaped with a backslash (the separator, newline etc.)

2 Layout preparation & import

  • Always expect long data. When preparing layouts for MyDataMerge, you have to add placeholders to text frames. Please make sure that text frames which contain placeholders are big enough to provide enough room for the data you want to merge in.
  • Move unneeded stuff to master pages. Instead of keeping all items on the regular pages, move everything that’s does not need to be merged (like decoration, background images…) to the master page. For large databases, this will speed up the process a lot.
  • Do not use styling options if every data record has the same styling. Apply styling in your layout document instead.
  • Use locally installed fonts instead of auto downloading them from Adobe Cloud. Adobe Fonts can be installed locally as well in your Adobe Creative Cloud app. When loading them online, this can massively slow down the merge process or lead to errors.
  • Scale images down. When merging thousands of data records its necessary to scale images down before the merge. No matter if the images are merged or part of the layout. This can save a lot of processing time.

Add placeholders to your layout

Requirements

  • The placeholder text must be located in a single text frame (not linked with any other)
  • The frame can have any proportions
  • You can choose any text you like (a-z, 0-9, _-)
  • The placeholder text including tags must be the only content of the text frame (be careful with spaces)
  • If you want to use Autolink you can add @ to identify the placeholder as image, e.g. <<@image>> (for using Autolink you also have to make sure that the label of the placeholder and the title of your datasource colum must match (in the example above, the datasource column title must be “image”)

Note: The position/alignment of the text inside the frame is not taken into account. You can control the alignment and fitting in the configuration.

Requirements

  • The placeholder text must be located in a single text frame (not linked with any other)
  • The text frame must be a square (same height and width)
  • The placeholder text including tags must be the only content of the text frame (be careful with spaces)
  • You can choose any text you like (a-z, 0-9, _-)
  • If you want to use Autolink you can add # to identify the placeholder as QR-Code, e.g. <<#qrcode>>
  • For a black QR-Code you should choose a black font color

Note: For better performance also give the textframe a background color, even if it is the same then the underlying content. This allows MyDataMerge to choose a more efficient process of generating QR-Codes.

Import

Importing your layout is easy:

Open MyDataMerge, start a new project and drag and drop your .indd file on the INDD area [1] or select the file by clicking the folder button [2]

After adding a datasource you can import both files.

Most common issues that may arise

  • If you have missing links or fonts, MyDataMerge will throw an error and ask you to fix this
  • If you have no placeholders defined (surrounded by << >>), MyDataMerge will throw an error
  • If you have auto-download fonts from Adobe Cloud enabled, MyDataMerge will throw an error – this is because InDesign loads these fonts asynchronously and doesn’t let developers (like us) check the loaded state of these fonts. You can bypass this issue by activating the fonts directly in the cloud (so they are always active)

3 MyDataMerge configuration

Configurations

Once you open a placeholders editor you will see that you can select a replacement type to show MyDataMerge what kind of data you want to inject [1] to that placeholder and you can select a setup [2]. Initially there’s a setup called “Initial setup” you can work with. But you can add as many others as you like.

In the center area (“Add item to ‘Initial setup'”) you can configure the output to be injected in the merge process dynamically. Each setup can have custom style settings (brush icon) and a custom hyperlink setting (chain icon).

By default, only the selected setup is used for the merge process. But setups become really powerful once you add them in a row (if first fails use second then third …) (path icon) or use them based on conditions (“If ‘First Name’ is ‘John’ then use this, otherwise use that).

 

For every placeholder you can add more than one setup.

If you have a well formed database with no missing data, usually one setup is enough. More than one setup will come in handy in situations where this isn’t the case or where you want to apply different styles.

Example:

You have a subject line in a letter where you want to output a salutation and last name e.g. “Dear Forrest” where “Forrest” is the first name and comes from the database and “Dear” is a static text. You can do this easily with a simple setup of your placeholder:

In the below image you can see the setup to output “Dear [First Name]”, a static text for “Dear ” [1] and a dynamic datasource element for the first name [2]. The output can be checked in the preview [3]:

Now imagine you don’t have a first name, then you’d like to output “To whom it may concern” which you can do with a second setup. So we add another setup here and give it an appropriate name [1]:

Then we configure it to output the static text “To whom it may concern”.

Right now, MyDataMerge would output “To whom it may concern” for every data record, because it’s the currently selected setup. To allow multiple setups to be processed you need to enable the process chain [1 + 2] as shown in the image below. Then all setups in the right table [3] will be processed from top down. If first setup fails (e.g. because first name is missing) then use second one and so on.

You can move unused setups to the left table, they will have no effect there. If the last setup in the right table fails, the “Action if last setup fails” will be executed which you can select at the bottom.

Note: You can add more control by adding conditions (on when it should be executed) to each setup.

While the default behaviour will toggle each setup in the process chain in a row (first fails, use second, second fails, use third …), conditions will trigger a setup if conditions are met. To enable conditions you have to enable process chain first [1]. Then the conditions icon becomes visible [2]. Enable conditions and add the conditions you require for the selected setup [3] to get triggered.

Once you have conditions enabled you will see which setup has conditions in the process chain.

Please note that even if you add conditions to a setup they still will be processed in the order they are arranged in the process chain.

According to the above image this would be:

  • “Custom configuration 1” -> Conditions met for the current data record? YES -> Execute it. NO -> Continue with the next.
  • “Custom configuration 2” -> Directly executed because no conditions are set. Does it fail? -> Continue with “Action if last setup fails”.

It is always a good idea to have a setup with no condition as last one.

Editing image placeholders

An image placeholder will inject images based on file paths from various sources into your layout in the merge process.

These sources can be one or a combination of:

  • Datasource content (Changes for each record)
  • Static text (Always the same)
  • Sequence (Different types of counting numbers)
  • Automator workflow (for editing outside of MyDataMerge – learn more here)
  • Custom (java-)script (learn more here)

Open the placeholder by double clicking it (or click the pen icon), then the editor will open. First of all, make sure that “Replace with image” is selected [1]. Then add one or more elements to get file paths to your images. In the below example [2] a datasource element is added, where column “Image” is selected (as this column contains paths to the image files). If the element is valid (green check) and a valid image path is given, you will see a preview on the right [3]. If the preview doesn’t appear, you might need to grant access to the image folder for MyDataMerge – click the “Grant access” button in this case. By deactivating the switch “Show image”, MyDataMerge will output the file path in the preview instead.

After access is granted, you will see the image appear in the preview on the right:

To advice MyDataMerge to download images please follow these instructions

  1. Make sure your image placeholder has the right type “Replace with image” [1]
  2. Add a datasource element and select the column with the image URLs [2]
  3. Open the settings (gear icon), and activate “Download image” [3]. You may additionally select a folder where to download the images to

Issues that may arise

  • By default, MyDataMerge checks for file name extensions of images. e.g. “https://www.myserver/path/to/myimage.jpg” -> .jpg – If it doesn’t find any, an error will be thrown. You can disable this behaviour in the preferences > editor > Disable file extension check for downloaded images
  • If images change online, MyDataMerge doesn’t know that. At the first time an image is downloaded, it will be cached and not re-downloaded by default (for a better performance). You can force a download everytime by activating “Force download on each export” in the image settings (check the image above).

 

4 Export

Filetypes

With CSV selected in Export > Filetype, MyDataMerge will export a Adobe® Indesign®’s data merge compatible CSV file. Use this option if you don’t want to merge with MyDataMerge but want to use MyDataMerges ability to customise the data.

Please note: Both CSV options …

  • CSV (export only) – Exports a CSV file
  • CSV (export and link) – Exports a CSV file and links it with your data in InDesign so you can continue with the data merge there

… cannot handle MyDataMerge specific actions like:

  • Applying styles
  • Applying the last action if a setup fails
  • Applying GREP actions
  • Applying Hyperlinks
  • Use Automator workflows after export

If you need any of these please use MyDataMerge for merging your data.