Do you want to make your card or letter truly personal for every recipient? You can! With Print.one, you can automatically personalize text, images, and QR codes using merge variables, without constantly adjusting your design.
Personalization is done with ‘merge variables’. These are pieces of text in your design that are automatically filled in later, such as the recipient's name or a discount code.
You write merge variables using double curly braces:
For example: {{first_name}}, {{discount}} or {{discount_code}}
When you send the cards, our system asks what value you want to give to each variable for each card. For {{first_name}}, this could be "Jane," for example.

Tips for using merge variables
Use short and clear names
No spaces or periods
Allowed characters: lowercase letters (a-z), hyphens (-), and underscores (_)
Avoid numbers in the name, that doesn't always work well in other systems
The value can be anything you want
For technical details (such as the JSON structure of your API call), see the API section.
You can also easily personalize QR codes, for example, with unique links per recipient.
Read more about personalizing QR codes on the QR codes page.
You can also personalize images. For example, with a variable image, you can show a product image of the recipient's most recent purchase and a win-back campaign.
You can add variable images in the editor by clicking on "Add variable image per recipient" and giving your variable a name, for example imageUrl. A temporary image (placeholder) will appear, which you can scale as you wish.
When sending, you include an image link for each recipient (e.g., based on segment, gender, product preference, etc.).
Please note:
The image must be on an external server (without rate limits).
Ensure that the server can return the image correctly, AND
returns a valid HTTP status code from the 2xx range (such as 200).
If an image fails to load because an HTTP code other than 2xx is returned, the order will fail.

Every merge variable you place in your design is mandatory to be filled in upon shipment. This means that if you send a card and (accidentally) leave a merge variable empty, such as the first name, the shipment will be automatically stopped and the order will fail.
Do you sometimes want to use a variable, for example, because you don't have a first name or a field is only used in specific situations? That's fine. In that case, ensure the field is filled with an empty string ("") or a standard value, such as "car enthusiast." This must be done via the CRM system or marketing platform from which the recipients originate, such as Hubspot or Deployteq, for example.
👉 Note: a missing variable (i.e., not included at all) is different from an empty value (""). Therefore, make sure that all variables are always included, even if they are empty.
Do you want certain text to be bold, colored, or formatted differently for each recipient, for example? You can use HTML within your variable. This can give you more control over the appearance of your card or letter without having to create multiple designs.
What can you do with it, for example?
Format text per recipient
Make important information stand out
Personal buttons or links
Use three curly braces instead of two: {{{message}}}. This tells the system to display HTML instead of plain text.
Suppose you want to address someone politely on the card with "Dear Mr. Jansen" or "Dear Ms. Jansen," depending on the gender. You can do this with HTML in a merge variable.
Example:
If you use {{{addressing_form}}} in your design, you can include the following when sending:
The recipient will then see blue text on the card.