Documentation Index
Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt
Use this file to discover all available pages before exploring further.
Signer Delegation
Signer delegation allows a recipient to reassign their signing responsibility to another person. This is useful when the original recipient is unavailable, has left the organization, or needs someone else to review and sign on their behalf. When a signer delegates, the original submitter record is updated with the new recipient’s details, an invitation email is sent to the new recipient, and the delegation is recorded in the audit trail.How It Works
- The original signer opens their signing link (
/s/:slug). - Instead of signing, they choose to delegate and provide the new recipient’s email and (optionally) name.
- The system updates the submitter record, resets the signing progress, and sends a fresh invitation email to the new recipient.
- The new recipient receives the signing link and completes the document.
- The delegation is recorded in the audit trail and triggers a webhook event.
API Endpoint
POST /s/:slug/delegate
Delegate a signing responsibility to another person. This endpoint is called from the signing page context (not the admin API). URL Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | The submitter’s unique signing slug |
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address of the new recipient |
name | string | No | Full name of the new recipient. Defaults to the email address if not provided. |
Status Restrictions
Delegation is only allowed when the submitter’s current status is one of:| Status | Can Delegate? | Description |
|---|---|---|
waiting | Yes | Submitter has not yet been sent an invitation |
sent | Yes | Invitation has been sent but not yet opened |
opened | Yes | Submitter has opened the signing link |
completed | No | Submitter has already completed signing |
declined | No | Submitter has declined to sign |
expired | No | The signing link has expired |
422 Unprocessable Entity error.
Example Request
Example Responses
What Happens During Delegation
When a delegation request succeeds, the system performs these steps:- Updates the submitter record with the new email and name. The status is reset to
sent, and thesent_attimestamp is refreshed. Theopened_attimestamp is cleared. - Records the delegation in the submission audit log with a
form_delegatedevent containing the original and new recipient details, plus the delegator’s IP address. - Creates an immutable audit entry in the
submission_audit_entriestable with event typeform.delegated. - Dispatches a
form.delegatedwebhook to all configured webhook endpoints. - Sends an invitation email to the new recipient with the signing link.
Audit Trail
Every delegation creates two audit records:Submission Audit Log Entry
Theform_delegated event is appended to the submission’s audit_log JSON array:
Immutable Audit Entry
A tamper-proof record is written to thesubmission_audit_entries table:
Webhook Event
When a delegation occurs, aform.delegated webhook event is dispatched to all configured webhook endpoints. The payload follows the standard webhook format:
The webhook payload includes the new submitter details (after delegation). The original signer’s information is available in the
metadata.from_email and metadata.from_name fields.Security Considerations
- The delegation endpoint does not require API token authentication — it is accessed from the signing page context using the submitter’s unique slug.
- The signing slug serves as the authorization mechanism. Only someone with access to the signing URL can delegate.
- Delegation is a one-way operation. Once delegated, the original signer loses access (their signing link now belongs to the new recipient).
- All delegations are recorded in the immutable audit trail with chain hashing, making them tamper-evident.
- The delegator’s IP address is captured for forensic purposes.