Signers

A form's submission becomes a case file in Penneo Sign, signed by one or more people. There are three ways to define who signs.

MechanismWho it's for
mapToThe respondent (primary signer), identified from their own answers.
predefinedSignersPeople you already know, such as HR or management. The same on every submission.
additionalSignersConfigSigner slots the respondent fills in themselves.

Mapping the respondent with mapTo

Set mapTo on the fields that capture the respondent's name and email, and Collect uses those answers to identify the primary signer, so they don't type their details twice.

{ "type": "TEXT",  "label": "Full Name", "required": true, "mapTo": "primarySigner.name" },
{ "type": "EMAIL", "label": "Email",     "required": true, "mapTo": "primarySigner.email" }
mapTo targetField type required
primarySigner.nameTEXT
primarySigner.emailEMAIL
additionalSigner.N.nameTEXT
additionalSigner.N.emailEMAIL

N is the zero-based index of an additionalSignersConfig slot. A field mapped to a *.name target must be of type TEXT, and a field mapped to an *.email target must be of type EMAIL.

Configuring the primary signer

mapTo decides who the primary signer is. An optional top-level primarySigner object configures that signer — a custom title and its own signing methods:

{
  "primarySigner": {
    "title": "Applicant",
    "secureSigningMethods": ["mitid.dk"]
  }
}
PropertyTypeDescription
titlestringRole label for the primary signer. Trimmed on save.
secureSigningMethodsarrayOverrides the form's secure signing methods for the primary signer.
insecureSigningMethodsarrayOverrides the form's insecure signing methods for the primary signer.

All three are optional. A signing-method list left out inherits the form's default; providing one overrides it for the primary signer — see Signing methods. If the object is blank (no title and no method overrides), it is treated as absent.

Predefined signers

Use predefinedSigners for signers that are the same on every submission:

{
  "predefinedSigners": [
    { "fullName": "HR Department", "email": "[email protected]" }
  ]
}

Signer slots

additionalSignersConfig defines signer positions the respondent completes when filling the form.

{
  "additionalSignersConfig": {
    "enabled": true,
    "maxDynamicSlots": 1,
    "slots": [
      {
        "title": "Guarantor",
        "description": "This person agrees to be responsible for rent payments if you cannot pay.",
        "required": true
      },
      {
        "title": "Co-Tenant",
        "description": "If you plan to share this rental, add them here.",
        "required": false
      }
    ]
  }
}
PropertyTypeDescription
enabledbooleanMust be true to collect signer slots. When false, slots must be omitted.
slotsarrayThe named signer positions you define. Each slot has a title, description, required flag, and optional condition. The respondent enters the name and email for each.
maxDynamicSlotsintegerHow many extra signers the respondent can add freely with the + button. These use generic labels and are always optional. Required when enabled is true; must be ≥ 0. Set to 0 to hide the button.

So slots are the named positions you define. maxDynamicSlots is the + button for any extra free-form signers, up to the limit.

A slot can carry a condition so it only appears based on earlier answers. See Conditional Fields & Sections.

Signer identity on prefilled requests

Work in progress. This feature is still being built and may change.

When you send a prefilled request, you can attach the actual signer identities up front instead of collecting them in the form. See Request Signers.

Per-signer signing methods

The primary signer, predefined signers, and slots can each override the form's signing methods. See Form Options.