# Ramp for Docusign IAM

> Connect Ramp to your Docusign agreement workflows. Read vendors, contracts, bills and users to pre-fill agreements, create or update vendors and contracts, and file the signed document on the contract or bill in Ramp.

- Web page: https://fluidlabs.com/documentation/ramp-for-docusign
- Published by: Fluidlabs
- Status: In development (not yet listed on the Docusign App Center)
- Last updated: 2026-11-01
- Support: docusign-support@fluidlabs.com

## Contents

- [Quick Start](https://fluidlabs.com/documentation/ramp-for-docusign#1-quick-start)
- [Implementation Guide & Known Behaviors](https://fluidlabs.com/documentation/ramp-for-docusign#2-implementation-guide--known-behaviors)
- [Installation and Configuration](https://fluidlabs.com/documentation/ramp-for-docusign#3-installation-and-configuration)
- [How to Use the App](https://fluidlabs.com/documentation/ramp-for-docusign#4-how-to-use-the-app)
- [Read from Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#5-read-from-ramp)
- [Writeback to Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#6-writeback-to-ramp)
- [File Upload to Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#7-file-upload-to-ramp)
- [FAQ & Troubleshooting](https://fluidlabs.com/documentation/ramp-for-docusign#8-faq--troubleshooting)

---

## 1. Quick Start

### 1. Install the App

- Open the [**Docusign App Center**](https://apps.docusign.com/app-center/extensionapps) and search for **Ramp**.
- Open the **Ramp** app card, click **Install App**, then **Install and Authorize** on the consent screen.

### 2. Create a Connection

- On the installed app page, click **Connect Account**.
- Choose the connection visibility (**Private** or **Shared**), give the connection a name, and click **Log In**.
- Sign in to Ramp if prompted, then click **Authorize** on the Ramp access request. Only a Ramp **Admin** or **Business Owner** can authorize the app.

### 3. Create a Workflow

- In Docusign, open **Workflow Manager** and create a workflow.
- Choose your preferred workflow start type.
- Add a Ramp step: **Read from Ramp**, **Writeback to Ramp**, or **File Upload to Ramp**.

### 4. Available Actions

- [**Read from Ramp**](https://fluidlabs.com/documentation/ramp-for-docusign#5-read-from-ramp): pull a vendor, contract, bill or user into your workflow to pre-fill an agreement.
- [**Writeback to Ramp**](https://fluidlabs.com/documentation/ramp-for-docusign#6-writeback-to-ramp): create or update a vendor or a contract; update a bill or a user.
- [**File Upload to Ramp**](https://fluidlabs.com/documentation/ramp-for-docusign#7-file-upload-to-ramp): file the signed document on the contract it governs or on the bill it supports.

### 5. Key Things to Know

- The app works with four Ramp objects: **Vendor**, **Contract**, **Bill** and **User**. Bills and users can be read and updated, not created: Ramp creates bills through its own bill pay flow and users through its invitation flow.
- Every later step addresses a record by its **Record ID**, the identifier Ramp gives each record (for example `3b4b0190-b55b-4582-b387-7ebe51cff133`). The Read and Writeback steps return it.
- Statuses and roles read in the words Ramp's own screens use: a vendor is **Active**, **Pending**, **On hold**, **Inactive** or **Unmanaged**; a contract is **Active**, **Renewal requested**, **Won't renew** and so on.
- A Read step that finds no record does not stop the workflow. Its variables are empty.


## 2. Implementation Guide & Known Behaviors

The app works with **Vendors**, **Contracts** (Ramp's vendor agreements), **Bills** and **Users**. Field labels are the words of Ramp's own screens. Every object has **Record ID**, which is read-only; fields Ramp does not let you edit, such as a bill's amount or a vendor's spend, can be read but not written.

| Object | Read | Create | Update | Notes |
| --- | --- | --- | --- | --- |
| Vendor | Yes | Yes | Yes | Create needs **Vendor Name** and **Contact Email** |
| Contract | Yes | Yes | Yes | Created under a vendor; needs **Contract Name**, **Start Date**, **Total Value** and the vendor |
| Bill | Yes | No | Yes | Invoice Number, Due Date, Invoice Date, Description, Memo for Vendor, Remote ID |
| User | Yes | No | Yes | Ramp invites users itself; the step updates an existing user |

### Building Workflows

- Find a record with a **Read from Ramp** step, filtered by a field you know, such as **External ID** on Vendors or **Invoice Number** on Bills. Use the **Record ID** it returns in every later step: Writeback (Update) and File Upload (the subfolder). In the variable picker a field of the Read step is named after its object, for example **Vendor / Record ID**.
- The Writeback step returns the **Record ID** of the record it created or updated. Use it in a later File Upload step.
- A Read step that finds no record does not stop the workflow. Its variables are empty.

### Searching for a Record

- **Searchable fields** are marked **(Searchable)** in the field list; any other field can be read and mapped but not used in a matching rule. A rule on another field stops the step and names the searchable fields.
  - **Vendor**: Record ID, Vendor Name, External ID, Vendor Status, Vendor Owner ID.
  - **Contract**: Record ID, Vendor ID, Auto-Renewal, Contract Status, Contract Owner IDs, Department ID.
  - **Bill**: Record ID, Invoice Number, Vendor ID, Payment Status, Approval Status, Payment Method, Remote ID, Entity ID, Purchase Order ID.
  - **User**: Record ID, Email, Employee ID, Role, Status, Department ID, Work Location ID, Legal Entity ID.
- **Operator:** the rule editor offers **Equal to**. Conditions on different fields combine with **AND**; an **OR** rule stops the step.
- **Record ID** identifies one record. When a rule contains Record ID, its other conditions are not applied. A Record ID that matches nothing reads as no match, so **Update or Create** falls through to create and **Update** stops with Ramp's not-found message.
- **Vendor Name** is matched ignoring letter case and repeated spaces. Several vendors can share a name; **A single record** returns the most recently created one. Identify a vendor by **Record ID** or **External ID** and use the name for lookups only.
- **External ID** and **Invoice Number** match exactly and are case-sensitive: `qa-ext-0000` does not find `QA-EXT-0000`.
- **Vendor Status** can only narrow a search: combine it with Vendor Name, External ID or Vendor Owner ID. On its own it stops the step, because Ramp cannot list vendors by status. **Active** never matches a vendor on hold.
- **Vendor Owner ID** returns only the vendors that owner manages.
- **Payment Method** on Bills: **Direct debit** and the other methods Ramp's bill filter does not take (Automatic card payment, Early payment discount, FedNow, RTP, Unspecified, Vendor credit) need a second condition, such as Vendor ID or Invoice Number.
- **Users**: **Role** searches by Ramp's words (Owner, Admin, Accounting, Employee, Guest, IT admin, Auditor); **Status** by Active, Inactive, Suspended or Not invited yet. A search without Status returns active, inactive and not-yet-invited users.
- A status word Ramp does not use stops the step with the allowed words.
- A semicolon in a condition stops the step; a comma is part of the value (`Go, Kubernetes, Terraform` looks for one vendor with that name). Values are trimmed.
- A search that Ramp cannot complete within ten pages or nine seconds stops the step and asks for a narrower rule; it never returns a short or empty list in its place.

### Reading Record Data

| Field type | Reads as |
| --- | --- |
| Status and role words | The word Ramp's screen shows, for example `On hold`, `Won't renew`, `Waiting for transfer match`, `Not invited yet` |
| Money | A decimal in major units, for example `12000.5`, beside its currency field |
| Date | Midnight UTC on that day: `2026-12-15T00:00:00.000Z` |
| Date and time | UTC: `2026-09-22T23:40:10.000Z` |
| Country and State | ISO codes (`US`, `CA`); Ramp's screen shows the names |
| Name / ID pairs | Both halves read: **Vendor Owner ID** and **Vendor Owner Name**, **Default Entity ID** and **Default Entity Name**, **Department ID** and **Department Name** |
| Booleans | `true` or `false` |

- **Vendors**: **Spend (Last 30 Days)** and **Spend (Last 365 Days)** are the two windows Ramp's vendor list shows, in major units beside **Spend Currency**. The four **Contact** fields read the vendor's default contact.
- **Contracts**: **Contract Status** reads the words of Ramp's status filter: Active, Planning to renew, Evaluating, Renewal requested, Renewal rejected, Renewed, Won't renew, Ended, Terminated. **Days Remaining** counts to the **Last Date to Action** when one is set.
- **Bills**: **Status** reads Ramp's Bill Pay status column (Awaiting approvals, Waiting for transfer match, Paid and the others). **Payment Date** is the day the bill was paid and is empty before payment; **Scheduled Payment Date** is the day Ramp plans to pay. **Payment ID** is the id Ramp prints as "PAY# …". **Bill Owner** is the owner Ramp's API reports; Ramp's bill list shows the submitter.
- **Users**: **Role** is Ramp's main role (Admin, Accounting, Employee, Auditor, IT admin, Guest or Owner). Additional roles such as Accounts Payable are not available to the step. **Status** reads **Not invited yet** for a user Ramp has not invited.
- Empty fields are left out of the result.

### Writeback Behaviors

| Topic | Behavior |
| --- | --- |
| Mapped fields | Written. Fields you do not map are left as they are. |
| Blank values | A blank value on an Update is ignored; a field cannot be cleared through the step. An Update whose every mapped value is blank stops the step. |
| Money | A decimal in major units (`12000.50` or `$1,234.56`). `77,50`, `95.000,00` and `1e3` stop the step naming the field, and so do more decimals than the currency has. |
| Dates | A value that starts with `YYYY-MM-DD`; `22/06/26` stops the step naming the field. The day part is written. |
| Booleans | `true`, `yes` or `1`; `false`, `no` or `0`. |
| Status words | Written in Ramp's words, any letter case. A word Ramp does not use stops the step and lists the allowed words. |
| Name / ID pairs | **Vendor Owner**, **Vendor** (on a contract), **Contract Owners**, **Department**, **Work Location**, **Manager**: map either half; the ID wins when both are mapped. A name has to match exactly one record (trimmed, any letter case, repeated spaces ignored); none or several stops the step naming the field. |
| Country and State | ISO codes (`US`, `CA`). Ramp keeps State for US vendors only: State with a non-US Country stops the step; writing a non-US Country clears the State. |
| Required fields | A Create with a required field missing stops the step and names every missing field. |
| Re-runs | Retries of the same run are de-duplicated; a genuine re-run writes again. |

**Vendors**

- **Create** needs **Vendor Name** and **Contact Email**. **External ID** must be unique in the Ramp business. **Description** can only be set with an Update; **Vendor Owner** only on Create. Ramp's screen lets a vendor have several owners; the step carries one.
- **Contact**: on an Update, a **Contact Email** the vendor already has changes nothing; a new one is added as the default contact and the previous contact stays. Ramp cannot edit a contact's name or phone, so such a change is skipped, and stops the step when it carries nothing else.
- **Address** travels as a set (**Address Line 1**, **City**, **Address Country**, **Postal Code**); an Update that changes part of it is completed from the stored address. Writing an address also sets Ramp's default payment method for the vendor to **Check by mail** at that address.
- **Vendor Status** is offered under the Writeback step's **Update** setting only (not under Update or Create). **Active** releases a hold or reactivates an inactive vendor before the other fields are written; **On hold** and **Inactive** are applied after them (On hold with the reason "Placed on hold by a Docusign workflow"); Inactive on a held vendor releases the hold first. A status the vendor already has writes nothing. On hold on an inactive vendor stops the step: map Active first. **Pending** and **Unmanaged** are set by Ramp and cannot be written; mapping one of them stops the whole step, so the other fields in that step are not written either. The step reads the status back and stops, naming what Ramp shows, if it differs.
- An inactive vendor cannot be edited: map **Vendor Status** = Active in the same step to change it. Reactivation needs a Vendor Owner, which only Ramp's own screen can set on an existing vendor.

**Contracts**

- **Create** needs **Contract Name**, **Start Date**, **Total Value** and the vendor (**Vendor ID** or **Vendor Name**). **Auto-Renewal** defaults to No and **Reminders** to Yes. A contract created without owners gets the business owner. The vendor of a contract cannot be changed.
- **Total Value** on an Update keeps the contract's currency; **Currency** without Total Value stops the step. Ramp accepts a negative Total Value and an End Date before the Start Date.
- **Contract Status** is read-only (Ramp ignores it on update): record a renewal decision in **Description** or in a document.

**Bills**

- The updatable fields are **Invoice Number**, **Due Date**, **Invoice Date**, **Description**, **Memo for Vendor** and **Remote ID**. Updates land on bills in any status. Amount, vendor and payment fields are read-only, and creating a bill stops the step with the reason.
- **Description** and **Memo for Vendor** take plain ASCII text up to 1000 characters. Typographic quotes, dashes, ellipses and non-breaking spaces become their plain twins; any other character outside ASCII stops the step, naming it.

**Users**

- **Role** reads and writes Ramp's words: Admin, Accounting, Employee, Auditor, IT admin or Guest (never Owner; "Bookkeeper" is accepted for Accounting). **Scheduled Deactivation Date** cannot be set for admins or owners (Ramp's rule, relayed).
- Creating a user stops the step: Ramp invites users through its own flow.

### Picklists

| Field | Values |
| --- | --- |
| Vendor Status (Update only) | Active, On hold, Inactive. Pending and Unmanaged are read-only |
| Contract Status (read-only) | Active, Planning to renew, Evaluating, Renewal requested, Renewal rejected, Renewed, Won't renew, Ended, Terminated |
| Role (User) | Admin, Accounting, Employee, Auditor, IT admin, Guest; Owner is read-only |
| Status (User, read-only) | Active, Inactive, Suspended, Not invited yet |
| Payment Status (Bill, read-only) | Open, Paid |
| Approval Status (Bill, read-only) | Approved, Initialized, Pending, Rejected, Terminated |
| Department Name, Work Location Name (User) | The names of your Ramp business's departments and locations; matched ignoring letter case, exactly one match required |
| Country, State, Address Country, Address State | ISO 3166 codes such as `US`, `CA`; State for US vendors only |
| Currency (Contract), Spend Currency | ISO 4217 codes such as `USD` |

### Files

- Two drives: **Contracts** and **Bills**. The folder is the record's **Record ID**, mapped from the Read or Writeback step; one subfolder level only.
- Files up to **31 MB**; a larger file stops the step, naming its size. Formats: CSV, DOC, DOCX, JPEG, JPG, PDF, PNG, XLS, XLSX on both drives; XML on bills; MD and WEBP on contracts. TXT is refused by Ramp.
- Where the file lands is described under [File Upload to Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#7-file-upload-to-ramp).

### Connection

- Ramp's access request lists create, update and delete rights for vendors, bills and users: these are the scopes Ramp groups together. The app never deletes anything.
- Clicking **Cancel** on Ramp's access request opens Ramp's home page in the same window; no connection is created. Close the window and start again from **Connect Account**.
- After an update of the app that changes its fields, run **Reconnect** on the connection, re-open the Ramp steps and re-map renamed fields. The release notes state when this is needed.


## 3. Installation and Configuration

### Prerequisites

- A **Ramp** business, and a Ramp user who is an **Admin** or **Business Owner** (only these roles can authorize the app).
- A **Docusign** account with admin rights to install and manage apps in the App Center.

### How to Install the App

- Open the [**Docusign App Center**](https://apps.docusign.com/app-center/extensionapps) and search for **Ramp** in the search bar.

  ![Docusign App Center search results showing the Ramp extension app by Fluidlabs.](https://fluidlabs.com/images/documentation/ramp-for-docusign/app-center-search.webp)

- Click the **Ramp** app card to open its detail page, then click **Install App**.
- Review the access the app requests and click **Install and Authorize**.

The app now appears with an **Installed** status.

### Connecting Your Account

- On the installed app page, click **Connect Account**.
- **Connection Visibility**: choose how the connection is shared:

  - **Private**: accessible only by you in Docusign.
  - **Shared**: accessible by multiple users or the whole team.

  ![The Connection Visibility step with Private and Shared options.](https://fluidlabs.com/images/documentation/ramp-for-docusign/connection-visibility.webp)

- **Name Connection**: enter a name. It appears in workflow steps, so make it easy to identify. Click **Log In**.

  ![The Name Connection step with a connection name entered.](https://fluidlabs.com/images/documentation/ramp-for-docusign/name-connection.webp)

- Sign in to Ramp if you are not signed in already.

- On Ramp's access request, review the permissions and click **Authorize**. Ramp lists create, update and delete rights for vendors, bills and users because that is how it groups its permissions; the app never deletes anything.
- If you click **Cancel** instead, Ramp opens its home page in the same window. No connection is created. Close the window and start again from **Connect Account** when you are ready to connect.

The connection is added and ready to use in workflow steps. Each connection works with one Ramp business: the one the access request was authorized for.

### Managing Connections

On the Ramp app page, open the **Manage** dropdown.

![The Manage dropdown on the Ramp app page showing New Connection, Manage Connections, Manage Apps, and Uninstall App.](https://fluidlabs.com/images/documentation/ramp-for-docusign/manage-connections-menu.webp)

Select **Manage Connections** to see every connection.

![The Ramp connections list showing a connection with an Active status and the New Connection button.](https://fluidlabs.com/images/documentation/ramp-for-docusign/connections-list.webp)

Use the three-dot (⋮) menu next to a connection:

![The connections list with the three-dot menu open showing Edit connection name, Reconnect, Reload Objects, and Delete Connection.](https://fluidlabs.com/images/documentation/ramp-for-docusign/connections-actions-menu.webp)

- **Edit connection name**: rename the connection.
- **Reconnect**: sign in to Ramp again. Use it when a step reports that the connection must be reconnected, or when the app's release notes ask for it.
- **Reload Objects**: refresh the objects and fields after an update of the app.
- **Delete Connection**: remove the connection. ⚠️ This may break workflows that use it.

### Adding a New Connection

Use **Manage → New Connection** on the app page, or **+ New Connection** on the Connections page. Each connection appears separately in workflow steps. To work with a second Ramp business, add a connection while signed in to that business in Ramp.

### Revoking Access from Ramp

In Ramp, a Business Owner or Admin can revoke the app's access under the business's connected apps. Every Docusign connection to that business then stops working until it is reconnected.


## 4. How to Use the App

### Create a Workflow

- Log in to Docusign and go to **Agreements → Workflows**.
- Click **Create Workflow**.

  ![The Docusign Workflows screen with the Create Workflow button.](https://fluidlabs.com/images/documentation/ramp-for-docusign/workflow.webp)

- Build your workflow using the available steps, including the Ramp actions.
- Publish the workflow when it is ready.

### Available Ramp Actions

Click **+ Add Step** and search for **Ramp**:

![The Add New Step dialog with "Ramp" searched, showing Read from Ramp, Writeback to Ramp and File Upload to Ramp.](https://fluidlabs.com/images/documentation/ramp-for-docusign/add-step-actions.webp)

- **Read from Ramp**: fetch a vendor, contract, bill or user and expose its fields as workflow variables. See [Read from Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#5-read-from-ramp).
- **Writeback to Ramp**: create or update a vendor or contract; update a bill or user. See [Writeback to Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#6-writeback-to-ramp).
- **File Upload to Ramp**: store a document from the workflow on a contract or a bill. See [File Upload to Ramp](https://fluidlabs.com/documentation/ramp-for-docusign#7-file-upload-to-ramp).

A typical procurement flow:

1. **Read from Ramp**: find the vendor by its External ID, and the contract for the agreement details.
2. **Prepare eSignature Template**: pre-fill the contract or order form.
3. **Send Documents for Signature**.
4. **File Upload to Ramp**: file the signed agreement on the contract.
5. **Writeback to Ramp**: note the signature in the vendor's Description, or create the contract record from the signed terms.


## 5. Read from Ramp

The **Read from Ramp** step retrieves a record and exposes its fields as workflow variables.

### Start the Workflow

The example below starts the workflow **From an API Call** with one **Text** variable, `vendor_external_id`, that carries the vendor's External ID. Any start type works: with a web form, use the form's field wherever this example uses `vendor_external_id`.

### 1. Add the Read Step

On the workflow canvas, click **+ Add a step** below the start, search for **Ramp** and select **Read from Ramp**.

![The Add New Step dialog with Read from Ramp highlighted.](https://fluidlabs.com/images/documentation/ramp-for-docusign/read-add-step-search.webp)

### 2. Configure Connection and Object

- **Connection**: select the connection you created during [installation](https://fluidlabs.com/documentation/ramp-for-docusign#3-installation-and-configuration).
- **Ramp object**: choose **Vendor**, **Contract**, **Bill** or **User**. This example uses **Vendor**.

  ![The Ramp object dropdown showing Vendor, Contract, Bill and User.](https://fluidlabs.com/images/documentation/ramp-for-docusign/read-configure-object.webp)

Click **Next**.

### 3. Select Fields

Click **Add or Remove Fields** and tick the fields your workflow needs. The selected fields become workflow variables for later steps. Fields that can be used in a matching rule are marked **(Searchable)**.

![The field browser listing Vendor fields with checkboxes, among them Record ID, Vendor Name (Searchable), External ID (Searchable) and Vendor Status (Searchable).](https://fluidlabs.com/images/documentation/ramp-for-docusign/read-fields-browser.webp)

How each type reads is under [Reading Record Data](https://fluidlabs.com/documentation/ramp-for-docusign#2-implementation-guide--known-behaviors).

Click **Next**.

### 4. Identify the Record

Create a rule that tells the step which record to read. In this example, match the vendor's **External ID** to the `vendor_external_id` start variable:

- **Ramp field:** External ID
- **Operator:** Equal to
- **Workflow field:** `vendor_external_id`

![The record-matching rule: External ID equals the vendor_external_id variable, with A single record selected.](https://fluidlabs.com/images/documentation/ramp-for-docusign/read-identify-record.webp)

Under **How many records should this step return?**, pick one:

- **A single record**: the first record that matches (for a name match, the most recently created vendor).
- **Multiple records**: up to five.

Use **preview this step** to check the rule against live data, then click **Apply**.

![The preview of a Read step showing one vendor's fields as read from Ramp.](https://fluidlabs.com/images/documentation/ramp-for-docusign/read-preview.webp)

Which fields a rule can use is under [Searching for a Record](https://fluidlabs.com/documentation/ramp-for-docusign#2-implementation-guide--known-behaviors).


## 6. Writeback to Ramp

The **Writeback to Ramp** step creates or updates a vendor or a contract, and updates a bill or a user.

### 1. Add the Writeback Step

On the workflow canvas, click **+ Add a step** where the writeback belongs, then search for **Ramp** and select **Writeback to Ramp**.

![The Add New Step dialog with Writeback to Ramp highlighted.](https://fluidlabs.com/images/documentation/ramp-for-docusign/writeback-add-step-search.webp)

### 2. Configure Connection, Object, and Write Setting

- **Connection**: select your Ramp connection.
- **Ramp object**: choose the object to write. This walkthrough uses **Vendor**.
- **Write settings**:

  - **Update or Create**: updates the matching record, or creates one if the rule finds nothing.
  - **Update**: updates an existing record only. **Vendor Status** and **Description** are offered under this setting.
  - **Create**: always creates a record.

  Bills and users offer **Update** only.

  ![The Write settings options: Update or Create, Update, and Create.](https://fluidlabs.com/images/documentation/ramp-for-docusign/writeback-write-settings.webp)

Click **Next**.

### 3. Map Fields

Click **Add or Remove Fields** and tick the fields you want to write. Only fields Ramp lets you edit on that setting are listed. Fields required on Create are marked with an asterisk: for a vendor, **Vendor Name** and **Contact Email**.

![The field browser listing the writable Vendor fields with checkboxes, Vendor Status and Description among them.](https://fluidlabs.com/images/documentation/ramp-for-docusign/writeback-fields-browser.webp)

Each selected field gets its own row. Map it to the workflow variable that supplies the value, or type a value.

![The Writeback step with Description mapped to a typed value and Vendor Status set to On hold.](https://fluidlabs.com/images/documentation/ramp-for-docusign/writeback-map-fields.webp)

In this example the step updates the vendor the Read step found, sets **Description** to `Agreement sent for signature` and puts the vendor **On hold**.

⚠️ **Map from the right source.** The variable picker also lists the output of your **Read from Ramp** step. Mapping from there writes the original values back unchanged. Map new values from the step that collected them, such as a start variable or a web form, or type them.

Click **Next**.

### 4. Identify the Record

Match the record by **Record ID**:

- **Ramp field:** Record ID
- **Operator:** Equal to
- **Workflow field:** the **Record ID** of the Read from Ramp step (**Vendor / Record ID**)

![The record-matching rule for Writeback: Record ID equals Vendor / Record ID from the Read step.](https://fluidlabs.com/images/documentation/ramp-for-docusign/writeback-identify-record.webp)

Click **Apply**.

With **Update or Create**, a rule that finds no record creates one; running the workflow again with the same value updates it. A contract is always created under a vendor: map **Vendor ID** (from a Read step) or **Vendor Name**.


## 7. File Upload to Ramp

The **File Upload to Ramp** step files a document produced earlier in the workflow on a contract or a bill in Ramp. Maximum size is 31 MB.

### 1. Add the File Upload Step

Add a step after signing completes, search for **Ramp**, and select **File Upload to Ramp**.

![The Add New Step dialog with File Upload to Ramp highlighted.](https://fluidlabs.com/images/documentation/ramp-for-docusign/file-upload-add-step-search.webp)

### 2. Select the File

Choose the file or envelope from an earlier step, for example the **Combined Envelope File** from **Send Documents for Signature**.

> An empty list means no earlier step in the workflow produced a file.

### 3. Choose the Drive

- **Select connection**: your Ramp connection.
- **Select drive**: **Contracts (use the Contract Record ID as subfolder)** or **Bills (use the Bill Record ID as subfolder)**. Pick the drive of the record that should hold the file.

### 4. Point the Folder at the Record

The folder tells the app which record gets the file. Ramp creates no folder.

- Click **Add Folder**, open the **Select folder** dropdown and pick **New Subfolder**, the only entry of the list. The **New folder** dialog opens.
- Click **Add Variable**, choose the step that returns the record, select **Record ID** (**Contract / Record ID** for a Read step on Contracts) and click **Add**.
- **Select folder** now shows the Record ID variable. Click **Next**.

A Record ID that names no record of the drive's type (an unknown id, or a bill's Record ID on the Contracts drive) stops the step, naming the drive and the id: Ramp has no place for a file that belongs to no record.

### 5. Name the File

Build the file name from **Add Text** and **Add Variable**. A date or time variable keeps repeat runs apart.

The file keeps the document's extension: `.pdf` is added when the name does not end with it.

Click **Apply**.

### 6. Verification

- **Contracts drive**: the document appears under its file name in the contract's **Documentation** panel and on the vendor's **Documents** tab. Ramp files and classifies each document itself: a contract's first document lands under **Contract documents** typed "Vendor contract", and a file uploaded by a workflow afterwards under **Related documents** typed "Other". The same file again on the same contract, under any name, succeeds as "already archived" and adds no second document.

  ![The contract's Documentation panel in Ramp listing the signed agreement uploaded by the workflow under Related documents.](https://fluidlabs.com/images/documentation/ramp-for-docusign/file-upload-verification-contract.webp)

- **Bills drive**: the file is a supporting attachment in the bill's **Documents** tab under its uploaded name. The same file again on the same bill within 24 hours succeeds as "already attached"; after that it is attached again.

  ![The bill's Documents tab in Ramp listing the uploaded attachment.](https://fluidlabs.com/images/documentation/ramp-for-docusign/file-upload-verification-bill.webp)


## 8. FAQ & Troubleshooting

**A step failed.**
> The usual causes: a status or role word Ramp does not use, a Vendor Status of Pending or Unmanaged (Ramp sets those itself), a money or date value in a format the field does not take, a name that matches no record or several, a required field left unmapped on Create, a text with characters outside ASCII in a bill's Description, or a Ramp connection whose access was revoked. The message names the field and what it takes.

**Why can't I search by Vendor Status alone?**
> Ramp cannot list vendors by status, so the step uses Vendor Status to narrow another condition. Combine it with Vendor Name, External ID or Vendor Owner ID.

**My rule on Vendor Status = Active returned nothing for a vendor I can see in Ramp.**
> The vendor is on hold, pending, inactive or unmanaged. Vendor Status reads Ramp's own words, and Active never matches a vendor on hold.

**I cannot find Vendor Status in my Writeback step.**
> Vendor Status is offered under the **Update** setting only. Under Update or Create, Ramp would need an existing vendor to put on hold, so the field is not listed there.

**Can I create a bill or invite a user from a workflow?**
> No. Ramp creates bills through its bill pay flow and users through its invitation flow. The step updates existing bills and users.

**A field I expect is missing from the step.**
> Open **Manage Connections**, click **Reload Objects** on the connection, then reopen the step and select the field again. After an app update that renames fields, run **Reconnect** and re-map the renamed fields.

**I clicked Cancel on Ramp's access request and the window now shows Ramp's home page.**
> That is Ramp's behavior when access is declined: it opens its home page in the same window instead of closing it. No connection was created. Close the window and click **Connect Account** again when you want to connect.

**The access request says the app can delete vendors, bills and users.**
> Ramp groups create, update and delete rights into one permission per object. The app never deletes anything.

**Only an Admin can connect?**
> Yes. Ramp lets Admins and Business Owners authorize apps. A Shared connection made by an Admin can be used by other Docusign users.

**Why can't I combine Record ID with other conditions?**
> Record ID fetches exactly one record. Use it alone, or build the rule from other fields.

**I only see "Equal to" in the Operator list.**
> Equal to is the operator the step offers. To narrow a search further, add conditions with AND.

**My update wrote nothing, and the step did not fail.**
> A blank value on an Update is ignored, and a Vendor Status the vendor already has writes nothing. Map a value from the step that collected it, not from the Read step's own output.

**Writing an address changed the vendor's payment method.**
> Ramp sets the vendor's default payment method to Check by mail at the address you write. Change the payment method in Ramp if the vendor is paid another way.

**The contract's Vendor cannot be changed.**
> Ramp fixes a contract's vendor at creation. Create a new contract under the right vendor.

**Country or State reads as a code.**
> The app reads and writes ISO codes (US, CA) because that is the form Ramp takes on write. Ramp's screen shows the names.

**The file did not appear on the record.**
> The folder has to hold the record's Record ID from a step that runs before the upload, and the drive has to be that record's type: a bill's Record ID on the Contracts drive stops the step.

**The file picker says no files are available.**
> No earlier step produced a file. Add the upload after **Send Documents for Signature**.

**The upload was refused for its size or format.**
> Files are limited to 31 MB. TXT is not accepted by Ramp; use PDF, DOC, DOCX, CSV, XLS, XLSX, JPEG, JPG or PNG (XML on bills, MD and WEBP on contracts).

---

Ramp for Docusign IAM is published by Fluidlabs. Docusign is a trademark of Docusign, Inc.
