Merge Fields

Merge fields reference previously entered answers inside other content. Use them to build personalized summaries, confirmations, and titles. They resolve both on screen and in the signed PDF.

Syntax

Double curly braces around a field's name:

{{fieldKey}}

Always set an explicit name on any field you intend to reference.

Where merge fields work

Rules

  • A referenced field must be required and non-conditional. Only fields guaranteed to have a value can be merged.
  • If a referenced field has no value yet, the placeholder stays visible.
  • Field keys are case-sensitive and must match exactly.
  • HTML fields cannot be used as merge fields.

Special merge fields

Alongside form field keys, these built-in fields are available on every surface that supports merge fields:

Merge fieldResolves toWhen it's valid
{{formName}}The form's name.Always.
{{primarySigner.name}}The primary signer's full name.Always.
{{primarySigner.email}}The primary signer's email.Always.
{{additionalSigner.N.name}}The Nth additional signer's full name.Slot N must be required and non-conditional.
{{additionalSigner.N.email}}The Nth additional signer's email.Slot N must be required and non-conditional.

N is the zero-based index of an additional signer slot. Signer values come from the fields you map with mapTo or from a prefilled request.

Reference by field type

Field typeExample keyOutputExample
TEXT{{text_FullName_0_0}}Plain textJohn Doe
NUMBER{{number_Amount_1_0}}Numeric value as string12345
EMAIL{{email_Email_0_1}}Email address[email protected]
PHONE{{phone_Phone_0_2}}Phone number+4512345678
DATE{{date_StartDate_1_1}}Date string2025-01-15
DATETIME{{datetime_StartDate_1_1}}DateTime string2025-01-15T10:30:00
CHOICE{{choice_Option_1_2}}Comma-separated valuesOption A, Option B
NIN{{nin_NationalId_0_3}}Country code + valueDK1234567890
BUSINESS_ID{{business_id_BusinessNumber_0_0}}Country code + valueDK12345678
FILE{{file_Attachment_1_2}}Comma-separated filenamespassport.png, picture.png

Example: a personalized summary

An HTML field can reflect earlier answers back to the respondent before they sign. It accepts only the allowed tags:

{
  "sections": [
    {
      "title": "Personal Information",
      "fields": [
        { "type": "TEXT",  "name": "full_name",     "label": "Full Name", "required": true, "mapTo": "primarySigner.name" },
        { "type": "EMAIL", "name": "email_address", "label": "Email",     "required": true, "mapTo": "primarySigner.email" }
      ]
    },
    {
      "title": "Loan Details",
      "fields": [
        { "type": "NUMBER", "name": "loan_amount", "label": "Loan Amount", "required": true, "validations": { "min": 10000, "max": 500000 } }
      ]
    },
    {
      "title": "Application Summary",
      "fields": [
        {
          "type": "HTML",
          "content": "<p><strong>Please review:</strong></p><p>Applicant: <strong>{{full_name}}</strong></p><p>Email: {{email_address}}</p><p>Requested Amount: {{loan_amount}} DKK</p>"
        }
      ]
    }
  ]
}

Each {{...}} is replaced with the value the respondent entered, both in the form and in the generated PDF.

Once the earlier fields are filled in, the summary renders like this:

Please review:

Applicant: Jane Smith

Email: [email protected]

Requested Amount: 250000 DKK