Signature
This chapter was written from the product's source code and has not yet been checked by a person on a running Cogneris. If what you see on screen differs, the screen is right — please tell your Cogneris contact so the chapter can be corrected.
Sends a document produced earlier in the run to the customer for electronic signature, waits for the answer, and replaces the draft with the signed copy.
| Palette | Nodes › Signature |
| Outputs | One output, taken once the document is signed. A refused, expired or cancelled request fails the run. |
| Content status | From source; not observed (workflow-fe f88c5c1, workflow-be 6703373, 2026-10-22) |
When to use it
After Generate document and before Send, so the delivery carries the signed copy and not the draft. The panel says so: Parks the run and asks the customer to sign what an earlier node produced. It belongs after Generate document and before Send, so the webhook carries the signed copy and not the draft.
The Contract signature workflow template uses it.
Each Signature phase asks one signer. For several signers in sequence (for example the insured, then the insurer), add one Signature phase per signer. Signer profiles are not used here: they belong to Signature validation, which checks signatures already present in a PDF.
What happens in a run
First passage — the request.
- The document to sign is the most recent non-failed document of the run whose type is Document to sign (
generated-documentby default, which is what Generate document produces). - The signer's name, and their email or phone depending on Delivery channel, are read from the case: the key is looked up in the form answers (a leading
formAnswers.is ignored), then in the process data. - The signing service creates the request — the envelope — named Envelope name (or the document's file name), with the deadline, reminder, jurisdiction and Case name, and sends the signing link and the one-time code over the channel.
- The run waits. Creating the same request twice is impossible: a repeated attempt for the same run and phase finds the envelope already raised instead of asking the customer again.
While it waits, the service checks the signing service regularly and wakes the phase when the request has an answer.
Second passage — the answer.
| Answer | Result |
|---|---|
| Signed | The signed PDF is stored as …-assinado.pdf and replaces the draft as the run's document, so later phases (for example Send) deliver the signed copy. It is filed in the Document Center as a new version of the generated document, so the same document id now resolves to the signed copy and the draft stays in its history. The signing audit trail is filed beside it as …-trilha-de-auditoria.pdf. The run continues. |
| Refused by the signer | The run fails with signature_refused. |
| Not signed before the deadline | The run fails with signature_expired. |
| Cancelled | The run fails with signature_cancelled. |
| Still open | The run keeps waiting. |
A signature is billed once, when the signed document is collected. Raising a request, or a request that is refused or expires, is not billed. If the Document Center refuses the signed version or the audit trail, the run still continues and the refusal is recorded.
The phase adds a signature block to the run's data: while waiting, status awaiting_signature, the envelope id, the channel, the deadline and whether the message was delivered (with the reason when it was not); once signed, status signed, the signing time, the signed document (including ecmDocumentId), the sealed document's fingerprint and the audit-trail filing.
Retries. When the signing service or storage is temporarily unavailable, the phase is run again up to 3 times. A refusal or an expiry is an answer and is never retried.
Configuration
| Field | What it does | Required | Format / values | Default | Validation messages |
|---|---|---|---|---|---|
| Description | Name shown on the node. | No | Text | Signature | — |
| Delivery channel | How the signing link and the one-time code reach the signer. | Yes | Email, SMS, WhatsApp | — | |
| Signer name field | Where the signer's name is read from. | Yes | A form-answer or process key, for example formAnswers.nome_completo | formAnswers.nome_completo | None in the panel; a name that resolves to nothing fails the run. |
| Signer email field | Where the signer's email is read from. Shown when the channel is Email. | Yes, for Email | Key, for example formAnswers.email | formAnswers.email | None in the panel; an empty email fails the run. |
| Signer phone field | Where the signer's phone is read from. Shown when the channel is SMS or WhatsApp. The phone must carry the country code. | Yes, for SMS and WhatsApp | Key, for example formAnswers.telefone | formAnswers.telefone | None in the panel; an empty phone fails the run. |
| Expires after (days) | Days the signer has before the request lapses and the run fails with signature_expired. Leave it blank for no deadline. | No | Whole number, 1 or more | 7 for a new phase | — |
| Remind after (days) | Days after the request to send the same link again to a signer who has not answered. | No | Whole number, 1 or more | Empty — no reminder | — |
| Jurisdiction | The legal regime the signed package declares. | No | Environment default, Brazil (MP 2.200-2 / Law 14.063), European Union (eIDAS) | Environment default — Leave it on the default to follow this environment: EU in the European stack, Brazil everywhere else. | — |
| Document to sign | The document type of the run document to sign. Change it only if another phase produces the document. | Yes | Document type | generated-document | — |
| Envelope name | What the signer is told they are signing. | No | Text, for example Credit agreement | Empty — the document's file name | — |
| Case name | Names the case in the signing app, so a signer with several requests can tell them apart. | No | Text, for example Home loan | Empty | — |
The panel always saves the name, email and phone keys, the channel and Document to sign: leaving one of them empty saves its default. Expires after (days) is different: a new phase starts at 7, and emptying it saves no deadline, so the request does not expire.
Every field shows its explanation under it, and the key fields suggest an example (formAnswers.nome_completo, formAnswers.email, formAnswers.telefone, generated-document).
The jurisdiction also sets the language of the signing request. The service refuses a jurisdiction other than Brazil or EU.
Common problems
| Message | Cause | What to do |
|---|---|---|
| signature found no '…' document on this run to sign. The signature node must come after a node that produces one (generate_document). (run error) | No document of the run has the type in Document to sign. | Place Generate document before, or correct Document to sign. |
| signature could not resolve the signer's name from '…'. The key must name a field the case actually carries, or the node must set signerName. (run error) | Signer name field names a key the case does not have, or it is empty. | Use the key of the form answer that holds the name. |
| signature is configured to deliver by email but '…' resolved to nothing. (run error) | No email for the signer. | Correct Signer email field, or make the form field required. |
| signature is configured to deliver by … but '…' resolved to nothing. (run error) | No phone for SMS or WhatsApp. | Correct Signer phone field. |
| sign-be refused the signature request: … (run error) | The signing service refused the request. | Read the detail; check the signer's email or phone format. |
signature_refused, signature_expired, signature_cancelled (run error) | The signer declined, did not sign in time, or the request was cancelled. | Start a new process if the document must still be signed. |
delivered is false in the phase output | The message did not reach the signer (for example a bounced email). The request exists and the run waits. | Check the signer's contact details. |
Related
- Generate document — produces the document to sign.
- Signature validation — checks digital signatures already in a PDF.
- Send — delivers the signed copy.
- Design and publish a workflow
Last reviewed 2026-10-22 · Version 1.0.0 · Owner: product-documentation