Learn how to add and format merge tokens within your documents, spreadsheets and presentations
Using Merge Tags in DocMergy
DocMergy uses merge tags wrapped in to pull HubSpot property values into your document templates.
You can also include formatting instructions to control how dates, times, text, or numbers appear.
Defining Object & Property Merge Tags
1. Objects
To reference a property, start by identifying the object type.
-
Standard Objects:
Use the object name: "contact", "company", "deal" or "ticket"
Example:
will display the first name of the contact. - Custom Objects:
Use the object ID instead of a name.
For custom Objects you need to use the Object ID, you can get this from the URL when viewing the Custom Object under Settings in your HubSpot Portal, it will look something like 2-5000858.
2. Properties
Once you've specified the object, add a . (fullstop) followed by the internal name of the property you want to display.
{{deal.dealname}}
To view your property's internal name, head to your property settings, open your property, click the </> icon and copy the internal name from the pop-up.
-
Go to Settings > Properties
-
Click into the property you want
-
Click the < / > icon
-
Copy the internal name from the pop-up
Example:
If you need to display a merge tag in your file (instead of merging the value), you can escape it using Jinja:
{{ object.property }}
Other examples:
{{ object.firstname }}
{{ object.dealname }}
{{ object.description }}
Formatting Merge Tags
Dates
By default, HubSpot displays the date as a Unix timestamp in milliseconds for all integrations.
You can format the unix timestamp into your preferred date/time format by adding .value.strftime("") after the property.
Add syntax characters between the "" to define the format of the output.
Formatting Merge Tags
Dates
By default, HubSpot displays the date as a Unix timestamp in milliseconds for all integrations.
You can format the unix timestamp into your preferred date/time format by adding .value.strftime("") after the property.
Add syntax characters between the "" to define the format of the output.
Directive | Meaning | Example |
%a | 3 letter abbreviation of the day name. | Sun, Mon, ... |
%A | Full day name. | Sunday, Monday, ... |
%w | Weekday as a decimal number. | 0, 1, ..., 6 |
%d | Day of the month as a zero-padded decimal. | 01, 02, ..., 31 |
%-d | Day of the month as a decimal number. | 1, 2, ..., 30 |
%b | Abbreviated month name. | Jan, Feb, ..., Dec |
%B | Full month name. | January, February, ... |
%m | Month as a zero-padded decimal number. | 01, 02, ..., 12 |
%-m | Month as a decimal number. | 1, 2, ..., 12 |
%y | Year without century as a zero-padded decimal number. | 00, 01, ..., 99 |
%-y | Year without century as a decimal number. | 0, 1, ..., 99 |
%Y | Year with century as a decimal number. | 2013, 2019 etc. |
%H | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, ..., 23 |
%-H | Hour (24-hour clock) as a decimal number. | 0, 1, ..., 23 |
%I | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, ..., 12 |
%-I | Hour (12-hour clock) as a decimal number. | 1, 2, ... 12 |
%p | Locale’s AM or PM. | AM, PM |
%M | Minute as a zero-padded decimal number. | 00, 01, ..., 59 |
%-M | Minute as a decimal number. | 0, 1, ..., 59 |
%S | Second as a zero-padded decimal number. | 00, 01, ..., 59 |
%-S | Second as a decimal number. | 0, 1, ..., 59 |
%f | Microsecond as a decimal number, zero-padded on the left. | 000000 - 999999 |
%z | UTC offset in the form +HHMM or -HHMM. | |
%Z | Time zone name. | |
%j | Day of the year as a zero-padded decimal number. | 001, 002, ..., 366 |
%-j | Day of the year as a decimal number. | 1, 2, ..., 366 |
%U | Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, ..., 53 |
%W | Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01, ..., 53 |
%c | Locale’s appropriate date and time representation. | Mon Sep 30 07:06:05 2013 |
%x | Locale’s appropriate date representation. | 09/30/13 |
%X | Locale’s appropriate time representation. | 07:06:05 |
%% | A literal '%' character. | % |
example
- {{ object.close_date.value.strftime("%d/%m/%Y, %H:%M:%S") }}
Would output: 07/04/2025, 14:30:25 - {{ object.close_date.value.strftime("%a, %d/%m/%Y, %H:%M:%S") }}
Would output: Thu, 06/12/2018, 09:55:22
Key Difference: This format adds the abbreviated weekday name before the date. - {{ object.close_date.value.strftime("%a, %-d/%m/%Y, %H:%M:%S") }}
Thu, 6/12/2018, 09:55:22
Key Difference: This format uses %-d to display the day without leading zeros, so 7 instead of 07.