# SignWell

> Send documents for e-signature with SignWell: create a document from a template or from your own files, track where each recipient has got to, remind whoever is holding things up, download the signed PDF, and delete a document to cancel signing.

App · E-Signatures · 8 actions. Web page: https://docs.lodol.com/docs/integrations/signwell

## Actions

### Create SignWell document

Create a document from one or more files and send it for signature. The files are fetched from public URLs, so point this at something your workflow has already produced or stored somewhere reachable. Unless draft is true, place at least one field for each recipient; SignWell rejects a request that gives a recipient nothing to sign.

**Inputs**

- Files (`files`, list, required): The documents to send, each with a name and a publicly reachable file_url.
- Recipients (`recipients`, list, required): Who needs to sign, as a list of objects. Each needs a name and an email. Set signing_order to a number to control the sequence when apply_signing_order is on.
- Fields (`fields`, list): Where to place a field (a signature, a text box, a date, ...) on the document, as a list of objects. SignWell rejects a non-draft document unless every recipient has at least one field, so this is required unless draft is true. Each needs a type, an x/y position in pixels, and the page it belongs to; recipient names which recipient (1 for the first entry in recipients, 2 for the second, ...) it is for; file_index names which file (0 for the first) when sending more than one, and defaults to the first.
- Name (`name`, text): Name for the document, shown to recipients.
- Subject (`subject`, text): Subject line of the email sent to recipients.
- Message (`message`, text): Message shown in the email sent to recipients.
- Apply signing order (`apply_signing_order`, true/false): Make recipients sign one after another in the order given, rather than all at once.
- Reminders (`reminders`, true/false): Let SignWell send its own automatic reminders to people who have not signed. On by default.
- Expires in (`expires_in`, number): How many days recipients have to sign before the document expires.
- Test mode (`test_mode`, true/false): Create the document in test mode. Test documents are free and do not count towards your plan, but are not legally binding. Off by default.
- Draft (`draft`, true/false): Create the document without sending it, so you can review or edit it in SignWell first. Off by default, which sends it straight away.

**Outputs**

- `document` (object)

**Example output**

```json
{
  "document": {
    "apply_signing_order": false,
    "archived": false,
    "created_at": "2026-01-28T16:59:03Z",
    "decline_message": null,
    "embedded_edit_url": null,
    "embedded_preview_url": "https://www.signwell.com/preview/document/582a6a8f/",
    "error_message": null,
    "expires_in": 30,
    "files": [
      {
        "name": "agreement.pdf",
        "pages_number": 3
      }
    ],
    "id": "582a6a8f-931b-491d-91f3-b27cdefa7878",
    "message": "Let me know if anything needs changing before you sign.",
    "metadata": {
      "deal_id": "4821"
    },
    "name": "Consulting agreement",
    "recipients": [
      {
        "delivery_method": "email",
        "email": "ada@example.com",
        "id": "023d6b54-8cb0-4efb-928c-14c0758070bc",
        "name": "Ada Lovelace",
        "signing_order": 1,
        "signing_url": "https://www.signwell.com/docs/b98cc5a442/",
        "status": "sent"
      }
    ],
    "requester_email_address": "grace@example.com",
    "status": "Sent",
    "subject": "Please sign the consulting agreement",
    "test_mode": true,
    "updated_at": "2026-01-28T16:59:03Z"
  }
}
```

### Create SignWell document from template

Create a document from a SignWell template and send it for signature. Use Get SignWell template to find the roles and field ids the template expects.

**Inputs**

- Template ID (`template_id`, text, required): The template's SignWell id, from the template's page URL or the Get SignWell template action.
- Recipients (`recipients`, list, required): Who needs to sign, as a list of objects. Each needs a name and an email. Set signing_order to a number to control the sequence when apply_signing_order is on. Set placeholder_name to the template role each person fills.
- Template fields (`template_fields`, object): Values that prefill the template's fields. Add one entry per field: the key is the field's API ID, which Get SignWell template lists, and the value is what to fill in.
- Name (`name`, text): Name for the new document. Defaults to the template's.
- Subject (`subject`, text): Subject line of the email sent to recipients.
- Message (`message`, text): Message shown in the email sent to recipients.
- Apply signing order (`apply_signing_order`, true/false): Make recipients sign one after another in the order given, rather than all at once.
- Test mode (`test_mode`, true/false): Create the document in test mode. Test documents are free and do not count towards your plan, but are not legally binding. Off by default.
- Draft (`draft`, true/false): Create the document without sending it, so you can review or edit it in SignWell first. Off by default, which sends it straight away.

**Outputs**

- `document` (object)

**Example output**

```json
{
  "document": {
    "apply_signing_order": false,
    "archived": false,
    "created_at": "2026-01-28T16:59:03Z",
    "decline_message": null,
    "embedded_edit_url": null,
    "embedded_preview_url": "https://www.signwell.com/preview/document/582a6a8f/",
    "error_message": null,
    "expires_in": 30,
    "files": [
      {
        "name": "agreement.pdf",
        "pages_number": 3
      }
    ],
    "id": "582a6a8f-931b-491d-91f3-b27cdefa7878",
    "message": "Let me know if anything needs changing before you sign.",
    "metadata": {
      "deal_id": "4821"
    },
    "name": "Consulting agreement",
    "recipients": [
      {
        "delivery_method": "email",
        "email": "ada@example.com",
        "id": "023d6b54-8cb0-4efb-928c-14c0758070bc",
        "name": "Ada Lovelace",
        "signing_order": 1,
        "signing_url": "https://www.signwell.com/docs/b98cc5a442/",
        "status": "sent"
      }
    ],
    "requester_email_address": "grace@example.com",
    "status": "Sent",
    "subject": "Please sign the consulting agreement",
    "test_mode": true,
    "updated_at": "2026-01-28T16:59:03Z"
  }
}
```

### Delete SignWell document

Delete a document. If signing is still in progress this cancels it, so no one can sign afterwards. This cannot be undone.

**Inputs**

- Document ID (`document_id`, text, required): The document's SignWell id. You can get this from either create action, or from the end of the document's page URL.

**Outputs**: None.

**Example output**

```json
{}
```

### Get SignWell account

Get the account and workspace the connected API key belongs to. Useful for confirming a connection points where you expect before a workflow sends anything.

**Inputs**: None.

**Outputs**

- `account_name` (text): Name of the SignWell account.
- `plan_tier` (text): Which plan the account is on, which decides whether documents can be sent outside test mode.
- `role` (text): That user's role in the workspace, e.g. owner.
- `user_email` (text): Email of the account the key belongs to.
- `user_name` (text): Name on the account the key belongs to.
- `workspace_id` (text): Id of the active workspace.
- `workspace_name` (text): Name of the active workspace.

**Example output**

```json
{
  "account_name": "Example Ltd",
  "plan_tier": "free",
  "role": "owner",
  "user_email": "grace@example.com",
  "user_name": "Grace Hopper",
  "workspace_id": "e26b82c5-668f-4456-ba5a-2ec15e4e243c",
  "workspace_name": "Example Ltd"
}
```

### Get SignWell document

Get a document and where each recipient has got to. Poll this to hold a workflow until everyone has signed.

**Inputs**

- Document ID (`document_id`, text, required): The document's SignWell id. You can get this from either create action, or from the end of the document's page URL.

**Outputs**

- `document` (object)

**Example output**

```json
{
  "document": {
    "apply_signing_order": false,
    "archived": false,
    "created_at": "2026-01-28T16:59:03Z",
    "decline_message": null,
    "embedded_edit_url": null,
    "embedded_preview_url": "https://www.signwell.com/preview/document/582a6a8f/",
    "error_message": null,
    "expires_in": 30,
    "files": [
      {
        "name": "agreement.pdf",
        "pages_number": 3
      }
    ],
    "id": "582a6a8f-931b-491d-91f3-b27cdefa7878",
    "message": "Let me know if anything needs changing before you sign.",
    "metadata": {
      "deal_id": "4821"
    },
    "name": "Consulting agreement",
    "recipients": [
      {
        "delivery_method": "email",
        "email": "ada@example.com",
        "id": "023d6b54-8cb0-4efb-928c-14c0758070bc",
        "name": "Ada Lovelace",
        "signing_order": 1,
        "signing_url": "https://www.signwell.com/docs/b98cc5a442/",
        "status": "sent"
      }
    ],
    "requester_email_address": "grace@example.com",
    "status": "Sent",
    "subject": "Please sign the consulting agreement",
    "test_mode": true,
    "updated_at": "2026-01-28T16:59:03Z"
  }
}
```

### Get SignWell signed PDF

Get a download link for the finished, signed PDF, optionally with the audit page attached. Use this after a document completes to file the signed copy somewhere.

**Inputs**

- Document ID (`document_id`, text, required): The document's SignWell id. You can get this from either create action, or from the end of the document's page URL.
- Audit page (`audit_page`, true/false): Include SignWell's audit trail page, which records who signed and when. On by default.
- File format (`file_format`, text): Get one merged PDF, or a ZIP with each file separately. Defaults to PDF. One of: `pdf` (Single PDF), `zip` (ZIP of separate files).

**Outputs**

- `file_url` (text): Temporary link to download the signed file from.

**Example output**

```json
{
  "file_url": "https://www.signwell.com/signed/gZLbdGbkzrtAyy2DQMNqH4baE9EP.pdf?audit_page=true"
}
```

### Get SignWell template

Get a template with the recipient roles and the field ids it expects, which is exactly what Create SignWell document from template needs to fill in.

**Inputs**

- Template ID (`template_id`, text, required): The template's SignWell id, from the template's page URL.

**Outputs**

- `template` (object)

**Example output**

```json
{
  "template": {
    "apply_signing_order": true,
    "archived": false,
    "created_at": "2026-01-24T16:59:23Z",
    "embedded_edit_url": "https://www.signwell.com/edit/template/9af41161/",
    "field_api_ids": [
      "company_name",
      "start_date"
    ],
    "id": "0ac7e607-a1a2-41ff-b01b-3fdca3cbba71",
    "message": "Standard terms, nothing unusual.",
    "name": "Consulting agreement",
    "placeholders": [
      {
        "id": "1",
        "name": "Client"
      },
      {
        "id": "2",
        "name": "Contractor"
      }
    ],
    "status": "Available",
    "subject": "Please sign the consulting agreement",
    "template_link": "https://www.signwell.com/new_doc/rVkU9XeirC1PSEXT/",
    "updated_at": "2026-01-24T16:59:23Z"
  }
}
```

### Send SignWell reminder

Remind everyone who has not signed the document yet. Each person is reminded through whichever delivery method they were set up with.

**Inputs**

- Document ID (`document_id`, text, required): The document's SignWell id. You can get this from either create action, or from the end of the document's page URL.

**Outputs**

- `document` (object)

**Example output**

```json
{
  "document": {
    "apply_signing_order": false,
    "archived": false,
    "created_at": "2026-01-28T16:59:03Z",
    "decline_message": null,
    "embedded_edit_url": null,
    "embedded_preview_url": "https://www.signwell.com/preview/document/582a6a8f/",
    "error_message": null,
    "expires_in": 30,
    "files": [
      {
        "name": "agreement.pdf",
        "pages_number": 3
      }
    ],
    "id": "582a6a8f-931b-491d-91f3-b27cdefa7878",
    "message": "Let me know if anything needs changing before you sign.",
    "metadata": {
      "deal_id": "4821"
    },
    "name": "Consulting agreement",
    "recipients": [
      {
        "delivery_method": "email",
        "email": "ada@example.com",
        "id": "023d6b54-8cb0-4efb-928c-14c0758070bc",
        "name": "Ada Lovelace",
        "signing_order": 1,
        "signing_url": "https://www.signwell.com/docs/b98cc5a442/",
        "status": "sent"
      }
    ],
    "requester_email_address": "grace@example.com",
    "status": "Sent",
    "subject": "Please sign the consulting agreement",
    "test_mode": true,
    "updated_at": "2026-01-28T16:59:03Z"
  }
}
```
