Skip to content

Concepts & Glossary

Most confusion about vScrawl comes from one thing: a "document" in the UI is usually a workflow in the API. This page explains the object model, the status lifecycle, and how UI wording maps to API values.

The object model

flowchart TD
    W["<b>Workflow</b><br/>the envelope — what gets sent, tracked, and completed"]
    D1["<b>Document</b><br/>a PDF"]
    D2["<b>Document</b><br/>a PDF"]
    R1["<b>Recipient</b><br/>a person + their role"]
    R2["<b>Recipient</b><br/>a person + their role"]
    F1["<b>Field</b><br/>signature / text / date…"]
    F2["<b>Field</b>"]
    F3["<b>Field</b>"]

    W --> D1
    W --> D2
    W --> R1
    W --> R2
    D1 --> F1
    D1 --> F2
    D2 --> F3
    R1 -.->|assigned to| F1
    R1 -.->|assigned to| F2
    R2 -.->|assigned to| F3
Term What it actually is
Workflow The envelope. It owns the recipients, carries the status, and is what "send", "complete", "void", and "decline" act on. Most endpoints take a workflowId.
Document One PDF inside a workflow. A workflow can hold several. Uploading without a workflowId creates a new workflow automatically, which is why the upload response returns both ids.
Recipient A person's participation in one workflow, plus their role and order. Not the same as a user account — the same person on two workflows is two recipient records.
Field A signature/text/date box placed on a document, assigned to a recipient.
User An account. Created automatically (as a guest) when you add a recipient whose email doesn't have one yet.

The most common mix-up

A documentId and a workflowId are different numbers, and several endpoints look similar but take different ones — e.g. fields are added under a document (/workflow/v1/{documentId}/fields) while signing happens on the workflow (/workflow/v1/{workflowId}/sign). If a call 404s or acts on the wrong thing, check which id you passed first.

Workflow types

Set once at upload via signType, and it determines what's allowed afterwards:

Type Meaning Recipients allowed
SELFSIGN You sign your own document. No one else is involved. None — adding any is rejected
COUNTERSIGN The normal case: send to one or more people. Any role
POWERSURVEY Bulk send — one document fanned out to many people individually. SIGNER only

There is no separate \"multi-sign\" type

One signer and ten signers are both COUNTERSIGN. What changes is the sequence below — not the type.

Sequence — the ordering rule

Set at upload (or changed while still in draft). This is what customers usually mean when they ask "why hasn't the second person received it yet?"

Sequence Behavior on send
ORDERED One at a time. Only the first recipient is emailed. The next is emailed automatically the moment the previous one finishes.
UNORDERED All at once. Every recipient is emailed immediately and can act in parallel.
SELF Self-sign only.
SURVEY Power Survey fan-out.

If someone reports "recipient 2 never got an email," check the sequence before anything else — under ORDERED that's correct behavior until recipient 1 acts.

Recipient roles

Role Does what
SIGNER Fills fields and signs.
APPROVER Reviews and approves or declines. Does not sign fields.
CC Notified only. Never blocks progress — auto-marked as processed when the sequence reaches them.
ASSISTANT System-assigned, never set by a client. Inserted invisibly when a recipient has assistant delegation turned on, so their assistant pre-reviews first. It doesn't appear in anyone else's recipient list.

Status lifecycle

stateDiagram-v2
    [*] --> DRAFT: upload
    DRAFT --> SENT: commence
    SENT --> COMPLETED: last signer/approver acts
    SENT --> APPROVED: approval flow finishes
    SENT --> VOID: declined
    DRAFT --> VOID: declined before sending
    COMPLETED --> [*]
    VOID --> [*]
Status Meaning
DRAFT Created but not sent. The only state where recipients, fields, and sequence can be edited.
SENT Out for signature. At least one recipient still has an outstanding action.
COMPLETED Everyone required has acted. Sealed, and the evidence report is available.
APPROVED Finished via the approval path.
VOID Declined or cancelled. Terminal and read-only.

Completion is automatic

Nothing needs to call a "finish" endpoint. The moment the last required recipient signs or approves, the workflow seals itself, flips to COMPLETED, and generates its evidence report. If a workflow is stuck in SENT, someone still owes an action — check the recipient list for an unprocessed row.

UI label → API value

The app's wording and the API's values don't always match. When a customer quotes what they see on screen, this is the translation:

Customer sees (Documents filter) Sent to the API as Maps to a workflow status?
All Documents (no filter)
Draft draft DRAFT
Sent sent SENT
Completed completed COMPLETED
Approved approved APPROVED
Void / Voided void VOID
Pending pending No
Signed signed No
Viewed viewed No

Note the "Completed" pill sends completed, not the complete value used in the URL — that one is translated.

Pending, Signed and Viewed are not workflow statuses

Only five workflow statuses exist (DRAFT, SENT, VOID, COMPLETED, APPROVED). Those three filters describe the state of the item for the person looking at it — whether they've opened it, whether they've already acted — rather than the workflow's own status. Two people can therefore see the same workflow under different filters, and a workflow can appear under "Signed" while its status is still SENT because other recipients haven't finished. That's expected, not a bug.

Several backend states also collapse into one pill on the way in: anything in-progress shows under Sent, and cancelled/expired/rejected/declined all show under Void.

Who can do what

Action Required
Edit recipients / fields / sequence Workflow is DRAFT and you own it
Send (commence) Workflow owner, valid package, plan allows document sharing
Sign / approve / decline You are a recipient on it, with the matching role
Delegate a recipient's turn The workflow owner or that recipient themself
Org settings, members, business apps, email routing Organization owner
Templates, users, roles, etc. Granted per custom role

A 403-style error from an organization endpoint is almost always "you're a member, not the owner" rather than a broken token.