English
Yousign
Gets an emailed attachment electronically signed: request, document, signers, activation, then collection of the signed document and its audit trail. ⚠ Activation is billed by Yousign.
The Yousign node gets a document electronically signed and collects the result. It covers the whole journey: create a signature request, upload an email attachment to it, add the signers and their signature field, activate the request (which sends the invitations), then, once signed, fetch the signed document and the audit trail into the run.
It works with a Yousign API key stored once in Connections; the connection also sets the environment (sandbox or production), so a workflow never switches environment on its own. See Yousign to create it. To react when a request is signed, declined or expires, use the Yousign — event trigger.
A typical sending workflow chains four Yousign nodes: Signature request · Create a draft, Document · Upload an email attachment, Signer · Add a signer, Signature request · Activate. The receiving workflow starts on the trigger and chains Document · Download the signed document and Download the audit trail.
At a glance
- Type:
yousign.api· version 1 - Category: Actions
- Kind: Step — one stage of a run
- Effect: Writes outside (
external_write) — writes outside Mankomail; described instead of performed during a test run - Needs a carrier email: No
- Connection: Yousign
- Inputs:
main - Outputs:
main
Connection
This node needs a Yousign connection.
Parameters
connection
Yousign connection — The Yousign connection to use. Create it once in Connections; its key never appears in the workflow.
- Type: Connection (
credential) - Required: Yes
- Default:
""(empty)
resource
Resource
- Type: One choice (
options) - Required: Yes
- Default:
signatureRequest - Options:
signatureRequest— Signature request: The folder: create it, activate it (that is the send), follow it, cancel it.document— Document: Upload an email attachment, or fetch the signed document and the audit trail.signer— Signer: Who signs, at which level, and where the signature lands on the page.approver— Approver: Approves the request before the signers are asked, without signing.follower— Follower: Receives a copy of the signed document, with nothing to do.template— Template: List the active templates prepared in the Yousign app.contact— Contact: List the Yousign address book.user— User: List the members of the Yousign organisation.workspace— Workspace: List the workspaces.webhook— Webhook: List, create or delete a subscription — what feeds the trigger.
signatureRequestOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
create - Options:
create— Create a draft: Nothing is sent: the request starts as a draft, ready for documents and signers.createFromTemplate— Create from a template: Documents and fields come from the template; only the placeholders remain to fill.get— Get a request: Its status, documents, signers and their signature links.list— List requests: Filterable by status, by origin and by external id.activate— Activate — ⚠ sends the emails and triggers billing: Yousign counts one credit per invited signer, at activation time, whether they sign or not. This operation requires an explicit confirmation.cancel— Cancel: Only possible on a request under approval or in progress. Final: a cancelled request can never be reactivated.reactivate— Reactivate an expired request: Brings an expired request back to life, with a mandatory new expiry date.delete— Delete: Not possible under approval or in progress. By default the request goes to the bin and stays restorable.
- Shown when:
resourceissignatureRequest
documentOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
upload - Options:
upload— Upload an email attachment: The bytes go out asmultipart/form-data— Yousign refuses base64 — and never cross the workflow.list— List documents: Their name, nature, page count and SHA-256 digest.downloadSigned— Download the signed document: Thecompletedversion, available once the request is done. One signable document ⇒ a PDF, several ⇒ a ZIP.downloadAuditTrail— Download the audit trail: Every signer’s audit trail, merged into one PDF — the evidence to keep for ten years.
- Shown when:
resourceisdocument
signerOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
create - Options:
create— Add a signer: With its signature level and its signature field — without a field, activation fails.get— Get a signer: Its status and its signature link, to relay yourself in “no delivery” mode.list— List signersremind— Remind a signer: Re-sends the invitation to that signer. No billing: the credit was counted at activation.
- Shown when:
resourceissigner
approverOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
create - Options:
create— Add an approver: Only while the request is a draft. Ten approvers at most.list— List approvers
- Shown when:
resourceisapprover
followerOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
create - Options:
create— Add followers: One or more addresses, comma-separated. A hundred at most.list— List followers
- Shown when:
resourceisfollower
webhookOperation
Operation
- Type: One choice (
options) - Required: Yes
- Default:
list - Options:
list— List subscriptions: Their description and URL. The signing key is never returned by the node.create— Create a subscription: Webhooks are a shared domain at Yousign: a production key is required to create one through the API, even to listen to the sandbox.delete— Delete a subscription
- Shown when:
resourceiswebhook
signatureRequest
Signature request — The target request. In id mode, {{ data.create_request.signatureRequestId }} reuses the one created earlier by the “Create request” step; from the Yousign trigger, it is {{ data.yousign.data.signature_request.id }}.
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID, paste a URL (
yousign.signatureRequest) - Listed with the connection in:
connection - Shown when: (
resourceissignatureRequestandsignatureRequestOperationis one ofget,activate,cancel,reactivate,delete) orresourceisdocumentorresourceissignerorresourceisapproverorresourceisfollower
name
Request name — What the recipients see as the subject. 128 characters at most.
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 128 characters at most
- Example:
{{ email.subject }} - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate - Expressions:
{{ }}accepted
template
Template — Only active templates are offered: a draft template makes the creation fail.
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.template) - Listed with the connection in:
connection - Shown when:
resourceissignatureRequestandsignatureRequestOperationiscreateFromTemplate
templateSigners
Template signers — One placeholder per row. The label is the template’s own, and it is case-sensitive: “Client” ≠ “client”. Every placeholder must be filled.
- Type: List of items (
collection) - Required: No
- At most 20 items
- Each item has:
label— Template label- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 128 characters at most
- Type: Text (
firstName— First name- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Type: Text (
lastName— Last name- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Type: Text (
email— Email address- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Type: Text (
locale— Language- Type: One choice (
options) - Required: No
- Default:
fr - Options:
en— enfr— frde— deit— itnl— nles— espl— plpt— ptro— ro
- Type: One choice (
- Shown when:
resourceissignatureRequestandsignatureRequestOperationiscreateFromTemplate
templateTexts
Template texts — The template’s “read-only text” fields: the label as key, the text as value.
- Type: Key / value pairs (
keyValue) - Required: No
- Shown when:
resourceissignatureRequestandsignatureRequestOperationiscreateFromTemplate - Expressions:
{{ }}accepted
deliveryMode
Invitation delivery
- Type: One choice (
options) - Required: No
- Default:
email - Options:
email— Yousign sends the emails: The usual case: each recipient gets their invitation and reminders.none— No delivery — I relay the link: Activation then returnssignature_linkfor each signer. ⚠ It expires after 48 hours.
- Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
orderedSigners
Sequential signing — Each signer is only asked after the previous one. Mandatory for qualified signatures.
- Type: Yes / no (
boolean) - Required: No
- Default:
false - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
signersAllowedToDecline
Allow signers to decline — Declining becomes a traceable answer rather than silence: the request turns “declined” and the event reaches the trigger.
- Type: Yes / no (
boolean) - Required: No
- Default:
true - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
expirationDate
Expiry date — In YYYY-MM-DD format. Empty on creation = six months. Never more than a year, never in the past. Mandatory when reactivating an expired request.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 10 characters at most
- Example:
2026-10-31 - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate,reactivate - Expressions:
{{ }}accepted
externalId
External id — 🔴 The idempotency key. Left empty, the node derives one from the step: a retry then finds the request already created instead of creating a second one. Filled in, it is your own case reference — it comes back in the webhooks.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 255 characters at most
- Example:
case-2026-0412 - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate - Expressions:
{{ }}accepted
timezone
Time zone — IANA name (Europe/Paris). Empty = the Yousign organisation setting.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 64 characters at most
- Example:
Europe/Paris - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate - Expressions:
{{ }}accepted
auditTrailLocale
Audit trail language
- Type: One choice (
options) - Required: No
- Default:
fr - Options:
de— deen— enes— esfr— frit— itpt— ptro— ro
- Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
workspace
Workspace — Empty = the default workspace. ⚠ Leave it empty when the template already belongs to a workspace: Yousign refuses the mismatch.
- Type: Remote resource (
resourceLocator) - Required: No
- Ways to choose: pick from a list, type an ID (
yousign.workspace) - Listed with the connection in:
connection - Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
reminderInterval
Automatic reminders
- Type: One choice (
options) - Required: No
- Default:
0 - Options:
0— None1— Every day2— Every two days7— Every week14— Every two weeks
- Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate
reminderMaxOccurrences
Reminder count
- Type: Number (
number) - Required: No
- Default:
3 - Whole number, from 1 to 10
- Shown when: (
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate) andreminderIntervalis not0
emailSubject
Invitation subject — Replaces Yousign’s default subject. Empty = Yousign’s own.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 255 characters at most
- Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate - Expressions:
{{ }}accepted
emailBody
Invitation message
- Type: Long text (
text) - Required: No
- Default:
""(empty) - 2000 characters at most
- Shown when:
resourceissignatureRequestandsignatureRequestOperationis one ofcreate,createFromTemplate - Expressions:
{{ }}accepted
confirmBilling
I confirm this activation is billed — Yousign counts one credit per invited signer, at activation time, whether they sign or not. Without this box, the node refuses to activate.
- Type: Yes / no (
boolean) - Required: Yes
- Default:
false - Shown when:
resourceissignatureRequestandsignatureRequestOperationisactivate
sender
Sender — The Yousign user the invitation is sent on behalf of. Empty = the API key owner.
- Type: Remote resource (
resourceLocator) - Required: No
- Ways to choose: pick from a list, type an ID (
yousign.user) - Listed with the connection in:
connection - Shown when:
resourceissignatureRequestandsignatureRequestOperationisactivate
cancelReason
Cancellation reason
- Type: One choice (
options) - Required: Yes
- Default:
errors_in_document - Options:
errors_in_document— Errors in the documentcontractualization_aborted— Contractualisation abortedother— Other
- Shown when:
resourceissignatureRequestandsignatureRequestOperationiscancel
cancelNote
Note — Passed on to the recipients. 500 characters at most.
- Type: Long text (
text) - Required: No
- Default:
""(empty) - 500 characters at most
- Shown when:
resourceissignatureRequestandsignatureRequestOperationiscancel - Expressions:
{{ }}accepted
permanentDelete
Permanent deletion — Unchecked, the request goes to the bin and stays restorable. Checked, it is gone — irreversibly.
- Type: Yes / no (
boolean) - Required: No
- Default:
false - Shown when:
resourceissignatureRequestandsignatureRequestOperationisdelete
statuses
Statuses — Nothing checked = every status.
- Type: Several choices (
multiOptions) - Required: No
- Default:
[] - Options:
draft— draftapproval— approvalongoing— ongoingdone— donepaused— pauseddeclined— declinedrejected— rejectedexpired— expiredcanceled— canceleddeleted— deleted
- Shown when:
resourceissignatureRequestandsignatureRequestOperationislist
sources
Where requests come from — 🔴 Yousign only returns API-created requests when nothing is said. With both boxes checked, the ones prepared in the app show up too.
- Type: Several choices (
multiOptions) - Required: No
- Default:
["public_api","app"] - Options:
public_api— Created through the APIapp— Created in the application
- Shown when:
resourceissignatureRequestandsignatureRequestOperationislist
query
Search — Full-text search on the request name, performed by Yousign.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 200 characters at most
- Shown when:
resourceissignatureRequestandsignatureRequestOperationislist - Expressions:
{{ }}accepted
externalIdFilter
Exact external id — Finds the request of one specific case — the reverse read of the idempotency key.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 255 characters at most
- Shown when:
resourceissignatureRequestandsignatureRequestOperationislist - Expressions:
{{ }}accepted
limit
Maximum count
- Type: Number (
number) - Required: No
- Default:
50 - Whole number, from 1 to 200
- Shown when: (
resourceissignatureRequestandsignatureRequestOperationislist) or (resourceisdocumentanddocumentOperationislist) or (resourceissignerandsignerOperationislist) or (resourceisapproverandapproverOperationislist) or (resourceisfollowerandfollowerOperationislist) orresourceistemplateorresourceiscontactorresourceisuserorresourceisworkspaceor (resourceiswebhookandwebhookOperationislist)
documentNature
Document nature
- Type: One choice (
options) - Required: No
- Default:
signable_document - Options:
signable_document— Signable document: PDF or DOCX. An image cannot be signable.attachment— Informative attachment: Attached to the folder without being signed. PDF, DOCX, JPEG or PNG.
- Shown when:
resourceisdocumentanddocumentOperationisupload
selection
Attachments to use
- Type: One choice (
options) - Required: Yes
- Default:
all - Options:
all— All attachments: Those of the triggering email, then the files added by earlier steps (a fetched deed, a signed PDF), in that order.first— The first one only: The first attachment, when only one matters.byMime— By file type: By MIME type:application/pdf, or a whole family withimage/*.byName— By file name: By name pattern:*.pdf,invoice-*.
- Shown when:
resourceisdocumentanddocumentOperationisupload
mime
File type — Exact MIME type (application/pdf) or a whole family (image/*). Left empty, no attachment is kept.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 200 characters at most
- Example:
application/pdf - Shown when: (
resourceisdocumentanddocumentOperationisupload) andselectionisbyMime - Expressions:
{{ }}accepted
namePattern
File name — Simple pattern: * matches anything, ? one character (*.pdf, invoice-*). Case is ignored.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 200 characters at most
- Example:
*.pdf - Shown when: (
resourceisdocumentanddocumentOperationisupload) andselectionisbyName - Expressions:
{{ }}accepted
documentName
Rename the document — Empty = the attachment’s own name. No / or \, no leading or trailing space.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 128 characters at most
- Shown when:
resourceisdocumentanddocumentOperationisupload - Expressions:
{{ }}accepted
parseAnchors
Detect Smart Anchors — Looks for {{s1|signature|85|37}} tags written in white inside the PDF. ⚠ Silent failure: no error when the criteria are not met — the node returns anchors so you can check.
- Type: Yes / no (
boolean) - Required: No
- Default:
false - Shown when:
resourceisdocumentanddocumentOperationisupload
downloadVersion
Version to download
- Type: One choice (
options) - Required: No
- Default:
completed - Options:
completed— Signed (request done): Only available once the request status is “done”.current— As it stands: The document as it stands today, signatures in progress included.
- Shown when:
resourceisdocumentanddocumentOperationisdownloadSigned
mergeAuditTrails
Merge the audit trails — Checked: a single PDF. Unchecked: a ZIP archive, one file per signer.
- Type: Yes / no (
boolean) - Required: No
- Default:
true - Shown when:
resourceisdocumentanddocumentOperationisdownloadAuditTrail
maxDownloadMb
Maximum size (MB)
- Type: Number (
number) - Required: No
- Default:
10 - Whole number, from 1 to 10
- Shown when:
resourceisdocumentanddocumentOperationis one ofdownloadSigned,downloadAuditTrail
includeContent
Include the encoded content — Unchecked (recommended): the file is dropped into the run’s attachments and a “Compose an email” can attach it by its position. Checked: it is also returned as base64 in the step data, which weighs on every re-read.
- Type: Yes / no (
boolean) - Required: No
- Default:
false - Shown when:
resourceisdocumentanddocumentOperationis one ofdownloadSigned,downloadAuditTrail
signer
Signer
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.signer) - Listed inside:
signatureRequest - Listed with the connection in:
connection - Shown when:
resourceissignerandsignerOperationis one ofget,remind
signerSource
Who signs?
- Type: One choice (
options) - Required: No
- Default:
info - Options:
info— A person entered here: The usual case: the details come from the email or from an extraction.contact— A contact from the Yousign bookuser— A member of the organisation
- Shown when:
resourceissignerandsignerOperationiscreate
signerFirstName
First name
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 100 characters at most
- Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisinfo - Expressions:
{{ }}accepted
signerLastName
Last name
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 100 characters at most
- Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisinfo - Expressions:
{{ }}accepted
signerEmail
Email address — 100 characters at most — that is Yousign’s limit, not ours.
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 100 characters at most
- Example:
{{ email.from.email }} - Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisinfo - Expressions:
{{ }}accepted
signerPhone
Phone number — In international format (+33612345678). Mandatory as soon as authentication goes through SMS, hence for any advanced signature.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 20 characters at most
- Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisinfo - Expressions:
{{ }}accepted
signerLocale
Signer language
- Type: One choice (
options) - Required: No
- Default:
fr - Options:
en— enfr— frde— deit— itnl— nles— espl— plpt— ptro— ro
- Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisinfo
signerContact
Contact — ⚠ A contact restricted to one workspace cannot sign a request from another workspace.
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.contact) - Listed with the connection in:
connection - Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceiscontact
signerUser
Organisation member
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.user) - Listed with the connection in:
connection - Shown when: (
resourceissignerandsignerOperationiscreate) andsignerSourceisuser
signatureLevel
Signature level
- Type: One choice (
options) - Required: No
- Default:
electronic_signature - Options:
electronic_signature— Simple (SES): The usual level, available out of the box. Authentication with no code, by email or by SMS.advanced_electronic_signature— Advanced (AES): Identity document verification. ⚠ SMS code is mandatory, and the level must be enabled by Yousign support.qualified_electronic_signature— Qualified (QES): Identity document and a human-verified video. ⚠ Requires sequential signing, the same level for every signer, and activation by support.
- Shown when:
resourceissignerandsignerOperationiscreate
authenticationMode
Authentication
- Type: One choice (
options) - Required: No
- Default:
otp_email - Options:
otp_email— Code by emailotp_sms— Code by SMSno_otp— No codenone— Not applicable (qualified): A qualified signature accepts no code: the identity is already verified by video.
- Shown when:
resourceissignerandsignerOperationiscreate
fieldMode
Signature field — 🔴 Every signer must have at least one field, otherwise activation fails.
- Type: One choice (
options) - Required: No
- Default:
coordinates - Options:
coordinates— At given coordinates: Origin at the top left of the page, in points. An A4 page is about 596 × 842.smartAnchors— By Smart Anchors: The PDF tags place the fields at activation time. The document must have been uploaded with detection enabled.none— None (the template carries them): Only for requests created from a template, where the fields already exist.
- Shown when:
resourceissignerandsignerOperationiscreate
fieldDocument
Document to sign — In id mode, {{ data.api_1.documentId }} reuses the one uploaded just before by the “Upload” step.
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.document) - Listed inside:
signatureRequest - Listed with the connection in:
connection - Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
fieldPage
Page
- Type: Number (
number) - Required: No
- Default:
1 - Whole number, from 1 to 2000
- Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
fieldX
X (points from the left)
- Type: Number (
number) - Required: No
- Default:
100 - Whole number, from 0 to 32767
- Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
fieldY
Y (points from the top)
- Type: Number (
number) - Required: No
- Default:
650 - Whole number, from 0 to 32767
- Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
fieldWidth
Width
- Type: Number (
number) - Required: No
- Default:
85 - Whole number, from 85 to 2000
- Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
fieldHeight
Height
- Type: Number (
number) - Required: No
- Default:
37 - Whole number, from 37 to 1000
- Shown when: (
resourceissignerandsignerOperationiscreate) andfieldModeiscoordinates
approverUser
Internal approver — A member of the Yousign organisation. Left empty, the details entered below are used instead.
- Type: Remote resource (
resourceLocator) - Required: No
- Ways to choose: pick from a list, type an ID (
yousign.user) - Listed with the connection in:
connection - Shown when:
resourceisapproverandapproverOperationiscreate
approverFirstName
First name
- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Shown when:
resourceisapproverandapproverOperationiscreate - Expressions:
{{ }}accepted
approverLastName
Last name
- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Shown when:
resourceisapproverandapproverOperationiscreate - Expressions:
{{ }}accepted
approverEmail
Email address
- Type: Text (
string) - Required: No
- Default:
""(empty) - 100 characters at most
- Shown when:
resourceisapproverandapproverOperationiscreate - Expressions:
{{ }}accepted
approverLocale
Language
- Type: One choice (
options) - Required: No
- Default:
fr - Options:
en— enfr— frde— deit— itnl— nles— espl— plpt— ptro— ro
- Shown when:
resourceisapproverandapproverOperationiscreate
followerEmails
Follower addresses — Comma-separated. They receive a copy of the signed document, with nothing to do.
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 2000 characters at most
- Example:
office@firm.com - Shown when:
resourceisfollowerandfollowerOperationiscreate - Expressions:
{{ }}accepted
followerLocale
Language
- Type: One choice (
options) - Required: No
- Default:
fr - Options:
en— enfr— frde— deit— itnl— nles— espl— plpt— ptro— ro
- Shown when:
resourceisfollowerandfollowerOperationiscreate
webhook
Subscription
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
yousign.webhook) - Listed with the connection in:
connection - Shown when:
resourceiswebhookandwebhookOperationisdelete
webhookEndpoint
Destination URL — HTTPS only, public, and outside private networks. It is the trigger’s absolute URL, to copy from the “Yousign — event” node panel (shown once published).
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 1024 characters at most
- Shown when:
resourceiswebhookandwebhookOperationiscreate - Expressions:
{{ }}accepted
webhookDescription
Description
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 128 characters at most
- Shown when:
resourceiswebhookandwebhookOperationiscreate - Expressions:
{{ }}accepted
webhookSandbox
Listen to the sandbox — Webhooks are shared between both environments: this box, not the connection, decides what is listened to.
- Type: Yes / no (
boolean) - Required: No
- Default:
true - Shown when:
resourceiswebhookandwebhookOperationiscreate
webhookEvents
Subscribed events — Nothing checked = every event existing at creation time.
- Type: Several choices (
multiOptions) - Required: No
- Default:
["signature_request.done"] - Options:
signature_request.activated— signature_request.activatedsignature_request.done— signature_request.donesignature_request.declined— signature_request.declinedsignature_request.rejected— signature_request.rejectedsignature_request.expired— signature_request.expiredsignature_request.canceled— signature_request.canceledsignature_request.approved— signature_request.approvedsignature_request.reminder_executed— signature_request.reminder_executedsigner.notified— signer.notifiedsigner.link_opened— signer.link_openedsigner.done— signer.donesigner.declined— signer.declinedsigner.error— signer.errorsigner.notification_delivery_failed— signer.notification_delivery_failedapprover.approved— approver.approvedapprover.rejected— approver.rejectedcontact.created— contact.created
- Shown when:
resourceiswebhookandwebhookOperationiscreate
webhookScopes
Listened origins
- Type: Several choices (
multiOptions) - Required: No
- Default:
["public_api","app"] - Options:
public_api— Created through the APIapp— Created in the application
- Shown when:
resourceiswebhookandwebhookOperationiscreate
webhookAutoRetry
Automatic redelivery — Yousign resends failed deliveries for about four days. Leave it checked: it is what absorbs a restart.
- Type: Yes / no (
boolean) - Required: No
- Default:
true - Shown when:
resourceiswebhookandwebhookOperationiscreate
Outputs
main— Taken once the Yousign operation has succeeded. An error answer from Yousign fails the step instead.
Data produced
What this node adds to the run data, and how to read it in an expression. <step> stands for the step key: the node name turned into an identifier (see Data and expressions).
{{ data.<step>.signatureRequestId }}—string. The id of the signature request concerned (for List requests, the first one returned). Empty in a test run after a creation.{{ data.<step>.signatureRequest }}—{ id, name, status, source, externalId, deliveryMode, createdAt, expirationDate, workspaceId }. Create a draft, Create from a template, Get a request, Activate, Reactivate: the signature request.{{ data.<step>.status }}—string. Same operations: the status of the request (draft,approval,ongoing,done,declined,expired…).{{ data.<step>.externalId }}—string. Same operations: the external id of the request, the idempotency key described below.{{ data.<step>.reused }}—boolean. Create a draft and Create from a template: true when a request with the same external id already existed and was returned instead of creating a second one.{{ data.<step>.documents }}—array of { id, filename, nature, contentType, sha256, totalPages, anchors, signed }. Get a request, Upload an email attachment, List documents: the documents of the request.natureissignable_documentorattachment,anchorsthe number of Smart Anchors detected.{{ data.<step>.signers }}—array of { id, status, firstName, lastName, email, signatureLevel, signatureLink, signatureLinkExpiresAt }. Get a request, Activate, List signers: the signers.signatureLinkis only filled when the request uses No delivery, after activation.{{ data.<step>.signatureLink }}—string. Get a request, Activate, Get a signer: the signature link of the first signer (or of the signer read). Only filled in No delivery mode; it expires after 48 hours.{{ data.<step>.signatureRequests }}—array of { id, name, status, source, externalId, deliveryMode, createdAt, expirationDate, workspaceId }. List requests only: the requests found.{{ data.<step>.count }}—number. The number of items returned or written: requests, documents, signers, approvers, followers, templates, contacts, users, workspaces, subscriptions.{{ data.<step>.truncated }}—boolean. List operations (except List subscriptions): true when more items existed than Maximum count allowed.{{ data.<step>.activated }}—boolean. Activate only: true when the request was activated by this step. False when it was already active, and in a test run.{{ data.<step>.alreadyActive }}—boolean. Activate only: true when the request had already left the draft state, so nothing was sent or billed again.{{ data.<step>.billedSigners }}—number. Activate only: the number of invited signers Yousign counts for billing. 0 when the request was already active; in a test run, the number that would have been billed.{{ data.<step>.cancelled }}—boolean. Cancel only: true when the cancellation was sent, false in a test run.{{ data.<step>.reactivated }}—boolean. Reactivate an expired request only: true when the request was reactivated, false in a test run.{{ data.<step>.expirationDate }}—string. Reactivate an expired request only: the new expiry date sent.{{ data.<step>.deleted }}—boolean. Delete (request) and Delete a subscription: true when the deletion was sent, false in a test run.{{ data.<step>.permanent }}—boolean. Delete (request) only: true when the deletion was permanent rather than to the bin.{{ data.<step>.documentId }}—string. Upload an email attachment and List documents: the id of the first document, ready for the signature field of Add a signer.{{ data.<step>.anchors }}—number. Upload an email attachment only: the total number of Smart Anchors detected in the uploaded documents.{{ data.<step>.reusedNames }}—array of string. Upload an email attachment only: the file names already present on the request, which were not uploaded again.{{ data.<step>.document }}—{ filename, mime, size, sha256, attachmentPosition?, deduplicated? }. Download the signed document only: the file fetched.sha256is its SHA-256 digest;attachmentPositionis its position in the run's attachments.{{ data.<step>.auditTrail }}—{ filename, mime, size, sha256, attachmentPosition?, deduplicated? }. Download the audit trail only: the file fetched, same shape asdocument.{{ data.<step>.filename }}—string. Both downloads: the file name, as Yousign gives it, orsigned-document.pdf,audit-trail.pdf(.zipfor an archive) by default.{{ data.<step>.mime }}—string. Both downloads: the MIME type of the file (application/pdforapplication/zip).{{ data.<step>.size }}—number. Both downloads: the size of the file, in bytes.{{ data.<step>.attachmentPosition }}—number. Both downloads: the position of the file in the run's attachments, ready for a Compose step or an upload node.{{ data.<step>.deduplicated }}—boolean. Both downloads: true when an identical file was already in the run's attachments; its position is reused.{{ data.<step>.contentBase64 }}—string. Both downloads, only with Include the encoded content: the file content in base64.{{ data.<step>.signer }}—{ id, status, firstName, lastName, email, signatureLevel, signatureLink, signatureLinkExpiresAt }. Add a signer and Get a signer: the signer.{{ data.<step>.signerId }}—string. Add a signer, Get a signer, Remind a signer, List signers (first one): the signer id. Empty in a test run after Add a signer.{{ data.<step>.fieldsPlacedAtActivation }}—boolean. Add a signer only: true with Smart Anchors, whose fields only exist once the request is activated.{{ data.<step>.reminded }}—boolean. Remind a signer only: true when the reminder was sent, false in a test run.{{ data.<step>.approver }}—{ id, status, firstName, lastName, email }. Add an approver only: the approver created.{{ data.<step>.approverId }}—string. Add an approver only: the id of the approver, empty in a test run.{{ data.<step>.approvers }}—array of { id, status, firstName, lastName, email }. List approvers only: the approvers of the request.{{ data.<step>.followers }}—array. Add followers: the addresses sent, as strings. List followers: the followers, as{ id, email, locale }.{{ data.<step>.templates }}—array of { id, name, email, description, status }. Template resource only: the active templates.templateIdgives the first one.{{ data.<step>.contacts }}—array of { id, name, email, description, status }. Contact resource only: the contacts of the address book.contactIdgives the first one.{{ data.<step>.users }}—array of { id, name, email, description, status }. User resource only: the members of the Yousign organisation.userIdgives the first one.{{ data.<step>.workspaces }}—array of { id, name, email, description, status }. Workspace resource only: the workspaces.workspaceIdgives the first one.{{ data.<step>.webhooks }}—array of { id, description, endpoint, enabled, sandbox }. List subscriptions only: the webhook subscriptions. Their signing key is never returned.{{ data.<step>.webhookId }}—string. Webhook operations: the subscription concerned (for List subscriptions, the first one; empty in a test run after a creation).{{ data.<step>.endpoint }}—string. Create a subscription only: the destination URL registered.{{ data.<step>.description }}—string. Create a subscription only: the description of the subscription.{{ data.<step>.events }}—array of string. Create a subscription only: the events subscribed,*for all of them.{{ data.<step>.secretReturned }}—boolean. Create a subscription only: always false. The signing key Yousign returns is not put into the step data.{{ data.<step>.created }}—boolean. Create a subscription only: true when the subscription was created, false in a test run.{{ data.<step>.simulated }}—boolean. true when a write was described rather than performed (test run). Reads and downloads are never simulated.{{ data.<step>.summary }}—string. A one-line summary in the member's language, for example 'Signature request “Engagement letter” created (draft).' (withsummaryKeyandsummaryParams).
Operations
The node first asks for a Resource (resource), then for the operation of that resource, in a parameter named <resource>Operation. Most operations work inside one Signature request (signatureRequest), chosen from a list, by id ({{ data.<step>.signatureRequestId }}) or by URL.
Signature request (signatureRequestOperation)
- Create a draft (
create, the default). Creates a draft request named Request name (name, 128 characters at most). Options: Invitation delivery (deliveryMode: Yousign sends the emails, or No delivery — I relay the link), Sequential signing (orderedSigners), Allow signers to decline (signersAllowedToDecline), Expiry date (expirationDate,YYYY-MM-DD; six months when empty), External id (externalId), Time zone (timezone), Audit trail language (auditTrailLocale), Workspace (workspace), Automatic reminders (reminderInterval) and Reminder count (reminderMaxOccurrences), Invitation subject (emailSubject) and Invitation message (emailBody). Nothing is sent. The node first looks for a request with the same external id (GET /signature_requests) and returns it if there is one; otherwise it callsPOST /signature_requests. PublishessignatureRequest,signatureRequestId,status,externalId,reused. - Create from a template (
createFromTemplate). Same as Create a draft, from an active Template (template): Template signers (templateSigners, one row per template placeholder: label, first name, last name, email, language) and Template texts (templateTexts, the read-only text fields). Same output. - Get a request (
get). Reads the request with its documents and signers. PublishessignatureRequest,signatureRequestId,status,externalId,documents,signers,signatureLink. - List requests (
list). Lists requests filtered by Statuses (statuses), Where requests come from (sources, both API and application by default), Search (query) and Exact external id (externalIdFilter), up to Maximum count (limit, 1 to 200, default 50). PublishessignatureRequests,signatureRequestId,count,truncated. - Activate (
activate). Sends the invitations and triggers billing (POST /signature_requests/{id}/activate), on behalf of Sender (sender, the key owner when empty). It requires I confirm this activation is billed (confirmBilling) to be checked. The node reads the request first: if it has already left the draft state, nothing is sent. PublishessignatureRequest,signatureRequestId,status,externalId,signers,signatureLink,activated,alreadyActive,billedSigners. - Cancel (
cancel). Cancels a request under approval or in progress, with Cancellation reason (cancelReason) and Note (cancelNote, passed on to the recipients). Final: a cancelled request cannot be reactivated. PublishessignatureRequestId,cancelled. - Reactivate an expired request (
reactivate). Gives an expired request a new Expiry date, which is then required. PublishessignatureRequest,signatureRequestId,status,externalId,reactivated,expirationDate. - Delete (
delete). Deletes a request that is not under approval or in progress. It goes to the bin, or disappears for good with Permanent deletion (permanentDelete). PublishessignatureRequestId,deleted,permanent.
Document (documentOperation)
- Upload an email attachment (
upload, the default). Selects attachments of the run with Attachments to use (selection: all, the first one, by file typemime, by file namenamePattern) and sends each one as a separate document (POST /signature_requests/{id}/documents, multipart), with Document nature (documentNature: Signable document, PDF or DOCX, or Informative attachment), Rename the document (documentName, applied only when one file is selected) and Detect Smart Anchors (parseAnchors). A file whose name is already on the request is not sent again. PublishessignatureRequestId,documents,documentId,anchors,reusedNames,count. - List documents (
list). PublishessignatureRequestId,documents,documentId,count,truncated. - Download the signed document (
downloadSigned). Downloads Version to download (downloadVersion): Signed (request done) (completed, the default, only available once the request is done) or As it stands (current). One signable document gives a PDF, several give a ZIP. The file is added to the run's attachments. PublishessignatureRequestId,document,filename,mime,size,attachmentPosition,deduplicated, andcontentBase64with Include the encoded content (includeContent). - Download the audit trail (
downloadAuditTrail). Downloads the signers' audit trails, merged into one PDF with Merge the audit trails (mergeAuditTrails, on by default) or as a ZIP with one file per signer. Same output, withauditTrailinstead ofdocument.
Both downloads are bounded by Maximum size (MB) (maxDownloadMb).
Signer (signerOperation)
- Add a signer (
create, the default). Who signs? (signerSource): A person entered here (First namesignerFirstName, Last namesignerLastName, Email addresssignerEmail, Phone numbersignerPhone, Signer languagesignerLocale), A contact from the Yousign book (signerContact) or A member of the organisation (signerUser). Signature level (signatureLevel: simple, advanced or qualified) and Authentication (authenticationMode). Signature field (fieldMode): At given coordinates on Document to sign (fieldDocument), Page (fieldPage), X (fieldX), Y (fieldY, from the top), Width (fieldWidth, 85 minimum), Height (fieldHeight, 37 minimum); By Smart Anchors; or None for a request created from a template. PublishessignatureRequestId,signer,signerId,fieldsPlacedAtActivation. - Get a signer (
get). Reads Signer (signer). PublishessignatureRequestId,signer,signerId,signatureLink. - List signers (
list). PublishessignatureRequestId,signers,signerId,count,truncated. - Remind a signer (
remind). Re-sends the invitation to Signer. No extra billing. PublishessignatureRequestId,signerId,reminded.
Approver (approverOperation)
- Add an approver (
create, the default). An Internal approver (approverUser), or the person in First name, Last name, Email address and Language (approverFirstName,approverLastName,approverEmail,approverLocale). Only while the request is a draft. PublishessignatureRequestId,approver,approverId. - List approvers (
list). PublishessignatureRequestId,approvers,count,truncated.
Follower (followerOperation)
- Add followers (
create, the default). Follower addresses (followerEmails, separated by commas, semicolons or line breaks, 100 at most) receive a copy of the signed document, in Language (followerLocale). PublishessignatureRequestId,followers,count. - List followers (
list). PublishessignatureRequestId,followers,count,truncated.
Template, Contact, User, Workspace
Each of these resources has a single operation that lists the items (GET /templates, /contacts, /users, /workspaces), up to Maximum count. Templates are limited to active ones. Publishes templates and templateId, contacts and contactId, users and userId, or workspaces and workspaceId, with count and truncated.
Webhook (webhookOperation)
- List subscriptions (
list, the default). Publisheswebhooks,webhookId,count. - Create a subscription (
create). Registers Destination URL (webhookEndpoint, public HTTPS: the URL shown on the Yousign — event trigger) with Description (webhookDescription), Listen to the sandbox (webhookSandbox), Subscribed events (webhookEvents, all when none is checked), Listened origins (webhookScopes) and Automatic retry (webhookAutoRetry). PublisheswebhookId,endpoint,description,events,secretReturned,created. - Delete a subscription (
delete). Deletes Subscription (webhook). PublisheswebhookId,deleted.
Every operation also publishes simulated and summary.
Example
When an engagement letter is fully signed, the signed PDF and its audit trail must be filed in Google Drive. The workflow starts on the Yousign — event trigger, set to signature_request.done; the event lives under data.yousign. A first Yousign node, named "Signed document", fetches the signed file:
text
resource document
documentOperation downloadSigned
signatureRequest (id mode) {{ data.yousign.data.signature_request.id }}
downloadVersion completed
maxDownloadMb 10
includeContent offIts data reads:
json
{
"signatureRequestId": "6f1d2c3b-…",
"document": {
"filename": "Engagement letter.pdf",
"mime": "application/pdf",
"size": 184320,
"sha256": "9b1c…",
"attachmentPosition": 1,
"deduplicated": false
},
"filename": "Engagement letter.pdf",
"mime": "application/pdf",
"size": 184320,
"attachmentPosition": 1,
"deduplicated": false,
"simulated": false
}A second Yousign node, named "Audit trail", does the same with documentOperation: downloadAuditTrail and mergeAuditTrails: on. Then a Drive — upload a file node named "Archive" uploads them:
text
source attachment
selection all
folder (list mode) Signed engagement letters
onConflict renameA workflow started by Yousign has no triggering email, so All attachments only covers the two files fetched by the previous steps. The Drive links are then available in {{ data.archive.files.0.webViewLink }} and {{ data.archive.files.1.webViewLink }}. To find the client case again, use {{ data.yousign.data.signature_request.external_id }}: it is the external id given when the request was created.
Tips
- Activation is billed. Yousign counts one credit per invited signer at activation time, whether they sign or not. The node refuses to activate unless I confirm this activation is billed is checked (
node_invalid_paramotherwise); this box cannot be filled by an expression. Before activating, the node reads the request: a request already under approval, in progress, done, declined or rejected is not activated again (alreadyActive: true,billedSigners: 0), so a replay never bills twice. - No duplicate request. External id is the idempotency key. Left empty, the node derives one from the step key, which stays the same across replays; filled in, it is your own case reference and comes back in the webhooks (letters, digits and
_ - @ . % +, other characters become-, 255 characters at most). Before creating, the node looks for a request with this external id and returns it withreused: true. - Uploads. Yousign accepts multipart only, never base64: the node sends the attachment itself, read from the run. A file whose name is already on the request is not sent again (
reusedNames), which makes a replay safe. If no attachment matches the selection, the step fails withnode_nothing_to_do. Each attachment is capped at 10 MiB, checked for all of them before the first upload (attachment.too_large), so a request is never left half-filled. - Every signer needs a field. Without at least one signature field per signer, activation fails. With coordinates, the origin is the top left corner of the page, in points (an A4 page is about 596 × 842). With Smart Anchors, the document must have been uploaded with Detect Smart Anchors, and the fields are only created at activation. Detection fails silently: check that
anchorsis not 0. - Signature levels. Advanced signature always uses an SMS code and Qualified uses none, whatever Authentication says. An SMS code requires Phone number in international format (
+33612345678), otherwise the step fails withnode_invalid_param. Advanced and qualified levels must be enabled by Yousign support; qualified also requires sequential signing. - Signature links. In No delivery mode, Yousign sends no email and
signatureLinkcarries each signer's link after activation; it expires after 48 hours. - Downloads. The signed version is only available once the request is done. Maximum size (MB) goes from 1 to 10, the server's real limit per downloaded file; a larger file fails the step. Leave Include the encoded content off unless an HTTP request needs the base64: the file is already in the run's attachments, and the encoded copy weighs on every later step.
- Listing requests. Yousign only returns API-created requests unless told otherwise: keep both origins in Where requests come from to see the ones prepared in the application too.
- Webhook subscriptions. Webhooks are shared between the sandbox and production at Yousign: creating one through the API requires a production key, even to listen to the sandbox, and Listen to the sandbox decides what is listened to. The signing key Yousign returns is never put in the step data: copy it into the connection by hand.
- Test runs. In test runs, reads and downloads run for real, including the search by external id before a creation. Creations, uploads, activation, cancellation, reactivation, deletion, reminders and subscription changes are only described: nothing is sent, nothing is billed,
simulatedis true and no new id is returned. For Activate,billedSignerstells how many signers would have been billed. - Trigger data. In a workflow started by the Yousign trigger, the event lives under
data.yousign. Do not name this node "Yousign" there: its data would only be reachable through the node id. - Errors.
integration.unauthorized: the key was refused or revoked.integration.not_found: the request, document or signer does not exist in this environment.integration.rejected: Yousign refused the request as invalid; the error details carry Yousign's own message.integration.rate_limitedandintegration.unavailableare retried automatically: requests are paced to 30 per minute per connection (the sandbox limit), and a 409, 429 or 5xx answer gets up to three attempts before the engine retries the step later. See Error handling.