09 · E-Sign
E-Sign sends documents out for digital signature. You build a document from a reusable HTML template, assign signers, and send. Recipients get a unique tokenised link, fill in their fields (including a drawn signature), and the platform records every step in an audit trail.
Where to find it
Sidebar → E-Sign or /esign. E-Sign is admin-only — non-admins
can't open it.
Layout
/esign is a single page with three sections stacked top to bottom:
+-----------------------------------------------------------+
| Document signing. [+ Template] [+ New request] |
|-----------------------------------------------------------|
| Templates |
| MSA · 4 requests NDA · 2 requests ... |
|-----------------------------------------------------------|
| Signing requests |
| MSA — Acme Ltd 2 of 3 signed SENT |
| NDA — Beta Co Completed |
|-----------------------------------------------------------|
| Archive (completed / declined / expired) |
+-----------------------------------------------------------+
📷 Screenshot placeholder: screenshots/esign-list.png
Templates
A signing request is always built from a template. A template is a named HTML document body with placeholder fields the signer fills in.
To create one — + Template (/esign/templates/new):
- Name the template (e.g. "Service Agreement").
- Draft the HTML body — plain HTML in the editor.
- Define fields. Each field has a key, a label, and a type:
- Signature — the signer draws a signature
- Text — a free-text input
- Date — auto-filled with the signing date
- Click Insert on a field to drop its
{{key}}placeholder into the body. When the document is rendered, the placeholder is replaced by the signer's input.
Templates are versioned by editing; deleting a template archives it (existing requests keep working).
📷 Screenshot placeholder: screenshots/esign-template.png
Creating a signature request
- + New request (
/esign/requests/new). - Pick a template.
- Give the document a title (e.g. "Service Agreement — Acme Ltd").
- Add a cover message (optional) — shown to signers in the email and on the signing page.
- Add signers — name + email each. Signers are numbered; they are notified in order (signer 1 first, signer 2 once signer 1 signs, and so on).
- Create request.
The request starts in Draft. Open it and click Send for signing to email the first signer their link.
📷 Screenshot placeholder: screenshots/esign-place-fields.png
Each signer gets a unique tokenised link. Each token is single-use per signer.
Recipient experience
The signer opens a hosted page at /sign/<token> (the platform's own
domain — branded with the tenant's logo and primary colour):
- The page shows the document title, the cover message, and who they are signing as.
- The document body is rendered with the fields inline:
- Signature fields show a draw pad — sign with mouse or touch, then Clear to redo.
- Text fields are inline inputs.
- Date fields auto-fill with today's date.
- Click Sign document to submit, or Decline.
- If it isn't their turn yet, the page says "Waiting for previous signers".
Once everyone has signed, the signer and the request's creator receive a "Document completed" email.
📷 Screenshot placeholder: screenshots/esign-recipient.png
Status lifecycle
Draft → Sent → Partially signed → Completed
→ Declined (a signer refused)
→ Expired (passed its expiry date)
There is no separate "void" status — a request that should not proceed is handled by declining or letting it expire. A request only expires if an expiry date was set on it; without one it has no expiry.
Audit trail
Every request keeps a timeline of events, shown on the request page and downloadable implicitly as part of the record. Recorded events:
- Created — who created the request
- Sent — sent for signing
- Signed — each signer, with their name and email
- Declined — a signer refused
- Partially signed — awaiting remaining signers
- Completed — all parties signed
- Expired — request passed its expiry date
Each event stores the actor's name, email, and a timestamp.
Note. The audit trail does not currently capture IP address, user agent, or document hashes.
Completed documents
When all signers have signed, the request is marked Completed and the platform builds the final document — the template body with every signer's input (including signature images) merged in.
From a completed request, Download signed exports the final document as an HTML file.
Attachments
A request page has an Attachments panel — you can attach supporting files to the request record.
Common workflows
Send a one-off NDA
- Create (or reuse) an NDA template with a signature + date field.
- + New request → pick the NDA template → give it a title.
- Add the customer contact as the only signer.
- Open the request → Send for signing.
- Track it from the list and archive.
Send a multi-party MSA
- Create an MSA template with one signature field per party.
- + New request → pick the MSA template.
- Add signers in order: customer, our director, witness.
- Send — each signer is emailed in turn as the previous one signs.
Re-issue when something was wrong
Let the original request expire or have a signer decline it, then create a fresh request from the corrected template.