Form Options
These top-level properties control how a form behaves when it's submitted and processed.
Case file title
When a form is submitted, it becomes a case file in Penneo Sign: the document that gets sent out for signing.
By default a case file is titled "Form Name - Primary Signer Name". Override it with caseFileTitleTemplate. The title appears in the signing notification emails, so keep it clear.
The template accepts plain text, merge fields, or a mix.
{ "caseFileTitleTemplate": "{{formName}} - {{primarySigner.name}} ({{primarySigner.email}})" }Produces: Employee Contract - John Doe ([email protected])
The title accepts the same merge fields as everywhere else — {{formName}}, the signer fields, and form field keys — under the same rules. The final title is truncated to 1024 characters.
{
"caseFileTitleTemplate": "{{formName}} - {{customerName}} ({{orderNumber}})",
"sections": [
{
"title": "Customer Information",
"fields": [
{ "type": "TEXT", "label": "Customer Name", "name": "customerName", "required": true },
{ "type": "NUMBER", "label": "Order Number", "name": "orderNumber", "required": true }
]
}
]
}Success and cancel URLs
Redirect respondents after they finish or abandon the signing flow.
| Property | Description |
|---|---|
successUrl | Where to send the respondent after they successfully complete signing. |
cancelUrl | Where to send the respondent if they cancel or abandon. |
{
"name": "Customer Onboarding",
"successUrl": "https://yourapp.com/onboarding/complete",
"cancelUrl": "https://yourapp.com/onboarding/cancelled",
"sections": []
}Chaining forms
Point one form's successUrl at another form's public URL to walk a respondent through several documents in sequence:
Form 1: Employment Contract → successUrl: .../collect/forms/{form2-id}
Form 2: NDA Agreement → successUrl: .../collect/forms/{form3-id}
Form 3: Benefits Enrollment → successUrl: https://yourapp.com/onboarding/completeEach form produces its own signed PDF and can have its own signers. This is useful when you need separate legal documents, different signers per document, or a step through an external system (such as payment or ID verification) between forms.
Signing methods
Choose which signing methods signers may use. Two lists, each optional; omit both to use your account's default.
| Property | Values |
|---|---|
secureSigningMethods | mitid.dk, bankid_se, bankid_no, itsme.be, ftn.fi, eid.belgium.be, passport-reader.eident.dk, ausweisapp.bund.de, qes.personal.mitid.dk, qes.erhverv.mitid.dk |
insecureSigningMethods | text, draw, image |
secureSigningMethods are identity-verified (eID) methods. insecureSigningMethods are Simple Electronic Signatures: a typed, drawn, or uploaded signature with no identity check. Use them when you want to lower the signing barrier for internal or non-binding documents.
{
"name": "Internal Survey",
"insecureSigningMethods": ["text", "draw"],
"sections": []
}The primary signer, predefined signers, and signer slots can each specify their own secureSigningMethods / insecureSigningMethods to override the form-level defaults for that signer.
Email attachments
| Property | Type | Default | Description |
|---|---|---|---|
disableEmailAttachments | boolean | true | When true, the signed PDF is not attached to the completion email. Set false to attach it. |
{ "name": "Contract Form", "disableEmailAttachments": false, "sections": [] }Reminders
Set a reminder default on the form so every request created from it inherits the config without repeating it. A request can override the default or turn it off — see Reminders.
On the form, reminder is the config directly:
{
"name": "Onboarding",
"reminder": {
"intervalHours": [24, 72],
"maxReminders": 3
},
"sections": []
}intervalHours and maxReminders are required; sendImmediately, emailSubject, and emailBody are optional. See the schedule for what each field means and how reminders fire.
Language
language sets the form's language. Supported values:
DA Danish | DE German | EN English | FI Finnish |
FR French | NL Dutch | NO Norwegian | SV Swedish |
Defaults to DA. It controls:
- Notification emails sent to respondents and signers.
- The signing page's default language (respondents can change it themselves).
The same form, localized, differs only by language and the translated labels:
{
"name": "Kontaktformular",
"language": "DA",
"sections": [
{
"title": "Dine oplysninger",
"fields": [
{ "type": "TEXT", "label": "Fulde navn", "required": true, "mapTo": "primarySigner.name" },
{ "type": "EMAIL", "label": "E-mailadresse", "required": true, "mapTo": "primarySigner.email" }
]
}
]
}Updated 3 days ago
