# Procore for Docusign IAM

> Connect Procore to your Docusign agreement workflows. Read prime contracts, commitments, change orders, and project directory records to pre-fill agreements, write the signing outcome back to Procore, and attach the signed document to the record.

- Web page: https://fluidlabs.com/documentation/procore-for-docusign
- Published by: Fluidlabs
- Status: Live on the Docusign App Center
- Docusign App Center listing: https://apps.docusign.com/app-center/app/d887b97e-66c4-489a-89d2-0dc851691ed5
- App page: https://fluidlabs.com/integrations/procore-for-docusign
- Last updated: 2026-09-25
- Support: docusign-support@fluidlabs.com

## Contents

- [Quick Start](https://fluidlabs.com/documentation/procore-for-docusign#1-quick-start)
- [Supported Objects](https://fluidlabs.com/documentation/procore-for-docusign#2-supported-objects)
- [Prime Contracts](https://fluidlabs.com/documentation/procore-for-docusign#3-prime-contracts)
- [Commitments](https://fluidlabs.com/documentation/procore-for-docusign#4-commitments)
- [Other Known Behaviors](https://fluidlabs.com/documentation/procore-for-docusign#5-other-known-behaviors)
- [Installation and Configuration](https://fluidlabs.com/documentation/procore-for-docusign#6-installation-and-configuration)
- [How to Use the App](https://fluidlabs.com/documentation/procore-for-docusign#7-how-to-use-the-app)
- [Read from Procore](https://fluidlabs.com/documentation/procore-for-docusign#8-read-from-procore)
- [Writeback to Procore](https://fluidlabs.com/documentation/procore-for-docusign#9-writeback-to-procore)
- [File Upload to Procore](https://fluidlabs.com/documentation/procore-for-docusign#10-file-upload-to-procore)
- [FAQ & Troubleshooting](https://fluidlabs.com/documentation/procore-for-docusign#11-faq--troubleshooting)

---

## 1. Quick Start

### 1. Install the App in Docusign

- Open the [**Docusign App Center**](https://apps.docusign.com/app-center/extensionapps) and search for **Procore**.
- Open the **Procore** app card, click **Install App**, then **Install and Authorize** on the consent screen.
- Do not click **Connect Account** yet. Install the app in Procore first.

### 2. Install the App in Procore

- In Procore, a company admin opens **Apps → App Management**, clicks **Install App → Install Custom App**, and enters the App Version ID `9f1810c2-c45a-4ff5-b890-0d8eab2d25ab`.
- See [Installing the App in Procore](https://fluidlabs.com/documentation/procore-for-docusign#installing-the-app-in-procore).

### 3. Connect Your Account in Docusign

- Return to the Procore app page in the Docusign App Center and click **Connect Account**.
- Choose the connection visibility (**Private** or **Shared**), give the connection a name, and click **Log In**.
- Sign in to Procore, allow access, then choose the **company** and the **project** the connection works with.

A connection is tied to one Procore company and one project. For another project, add another connection.

### 4. Create a Workflow

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

### 5. Available Actions

- [**Read from Procore**](https://fluidlabs.com/documentation/procore-for-docusign#8-read-from-procore): pull a contract, change order, company, or user into your workflow to pre-fill an agreement.
- [**Writeback to Procore**](https://fluidlabs.com/documentation/procore-for-docusign#9-writeback-to-procore): update a record or create a new one, for example mark a subcontract as executed after signing.
- [**File Upload to Procore**](https://fluidlabs.com/documentation/procore-for-docusign#10-file-upload-to-procore): attach the signed document to the contract or change order in Procore.

### 6. Useful Information

- How each object behaves on read and write: [Prime Contracts](https://fluidlabs.com/documentation/procore-for-docusign#3-prime-contracts), [Commitments](https://fluidlabs.com/documentation/procore-for-docusign#4-commitments), and [Other Known Behaviors](https://fluidlabs.com/documentation/procore-for-docusign#5-other-known-behaviors).
- Common questions: [FAQ & Troubleshooting](https://fluidlabs.com/documentation/procore-for-docusign#11-faq--troubleshooting).


## 2. Supported Objects

Select an object in the **Procore object** dropdown of a Read or Writeback step.

These objects support Read, Writeback, and File Upload:

- [Prime Contracts](https://fluidlabs.com/documentation/procore-for-docusign#prime-contracts)
- [Prime Contract Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#prime-contract-change-orders)
- [Potential Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#potential-change-orders)
- [Commitment Subcontracts](https://fluidlabs.com/documentation/procore-for-docusign#subcontracts-and-purchase-orders)
- [Commitment Purchase Orders](https://fluidlabs.com/documentation/procore-for-docusign#subcontracts-and-purchase-orders)
- [Commitment Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#commitment-change-orders)

These objects support Read and Writeback, with limited File Upload:

- [Project Users](https://fluidlabs.com/documentation/procore-for-docusign#project-users)
- [Project Companies](https://fluidlabs.com/documentation/procore-for-docusign#project-companies)

They have no File Upload drive of their own. The **Docusign Documents** drive saves a file to the project's Documents without attaching it to a record, see [File Upload to Procore](https://fluidlabs.com/documentation/procore-for-docusign#10-file-upload-to-procore).

Procore has three kinds of companies: your company account, which owns the projects; the companies in the company-level Directory, shared by all projects; and the companies added to a project. The **Project Companies** object works with the companies added to a project. Companies in the company-level Directory cannot be read or edited from a workflow.


## 3. Prime Contracts

This section describes how Prime Contracts, Prime Contract Change Orders, and Potential Change Orders behave on read and write. The app is built for projects with 2 change order tiers; with another tier setting, the change order objects may not work.

### Prime Contracts

**Fields:** Id, Number, Title, Status, Executed, Description, Grand Total, Actual Completion Date, Architect Name, Architect ID, Contract Estimated Completion Date, Contract Start Date, Contract Termination Date, Contractor Name, Contractor ID, Exclusions, Inclusions, Private, Signed Contract Received Date, Substantial Completion Date, Vendor Name, Vendor ID, Created At.

**Read only:** Id, Grand Total, Architect Name, Contractor Name, Vendor Name, Created At.

- **Status takes** `Draft`, `Out For Bid`, `Out For Signature`, `Approved`, `Complete`, `Terminated`.
- **A new contract is private.** Map Private = `false` to show it to every project member.
- **A contract created from a workflow has no line items, so Grand Total is 0.** Add the line items in Procore to get the right total.
- **Architect ID takes the Id of a project user.** Contractor ID and Vendor ID take the Id of a company from Project Companies.
- **Architect Name, Contractor Name, and Vendor Name are read only.** To set a party, map Architect ID, Contractor ID, or Vendor ID.
- **An empty value leaves the field as it is.** A field cannot be cleared from a workflow.

### Prime Contract Change Orders

**Fields:** Id, Number, Title, Status, Contract ID, Executed, Private, Description, Schedule Impact Amount, Due Date, Paid Date, Invoiced Date, Signed Change Order Received Date, Revised Substantial Completion Date, Grand Total, Designated Reviewer Name, Designated Reviewer Id, Created By Name, Created By Id, Reviewed At, Created At, Updated At.

**Read only:** Id, Grand Total, Designated Reviewer Name, Created By Name, Created By Id, Reviewed At, Created At, Updated At.

- **Contract ID is the Id of the prime contract.** It is required on Create and cannot be changed later. Create change orders with the **Create** write setting, see [Creating Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#creating-change-orders).
- **Approval lives on this record.** The Potential Change Orders linked to it follow its status.
- **Grand Total is the sum of the linked Potential Change Orders.**
- **Designated Reviewer Id takes the Id of a project user.**

### Potential Change Orders

**Fields:** Id, Number, Title, Status, Contract ID, Executed, Description, Grand Total, Schedule Impact Amount, Due Date, Paid Date, Invoiced Date, Signed Change Order Received Date, Private, Location ID, Reference, Paid, Batch ID, Revision, Change Reason, Change Reason Id, Created By Name, Created By Id, Designated Reviewer Name, Designated Reviewer Id, Request Received From Name, Request Received From Id, Created At, Updated At, Reviewed At.

**Read only:** Id, Grand Total, Paid, Revision, Change Reason, Created By Name, Created By Id, Designated Reviewer Name, Request Received From Name, Created At, Updated At, Reviewed At.

- **Contract ID is the Id of an `Approved` prime contract.** Any other status fails the step. Contract ID is required on Create and cannot be changed later. Create change orders with the **Create** write setting, see [Creating Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#creating-change-orders).
- **Batch ID links the change order to a Prime Contract Change Order.** Use that record's Id.
- **A Prime Contract Change Order accepts change orders only while it is not approved.** Link the change orders first, approve last.
- **Status of a linked change order follows its Prime Contract Change Order.** Writing Status on the Potential Change Order does not change it.
- **Executed does not change Status.** An executed change order can still be `draft`, so map both.
- **A new change order is private.**
- **A change order created from a workflow has no line items, so Grand Total is 0.** Add the line items in Procore to get the right total.
- **Location ID, Change Reason Id, Designated Reviewer Id, and Request Received From Id take Ids.** A name is not accepted and the step fails.

### Change Order Status

The same values apply to Prime Contract Change Orders, Potential Change Orders, and Commitment Change Orders. Write the label as Procore shows it or the stored value, in any letter case. Status reads as the stored value.

| Label in Procore | Stored value |
| --- | --- |
| Draft | `draft` |
| Pending - Pricing | `pricing` |
| Pending - Not Pricing | `not_pricing` |
| Pending - In Review | `pending` |
| Pending - Revised | `revised` |
| Pending - Proceeding | `proceeding` |
| Pending - Not Proceeding | `not_proceeding` |
| Pending Billable | `pending_billable` |
| No Charge | `no_charge` |
| Approved | `approved` |
| Rejected | `rejected` |
| Void | `void` |

### Creating Change Orders

This applies to Prime Contract Change Orders, Potential Change Orders, and Commitment Change Orders.

Contract ID is required to create a change order and cannot be changed afterwards, so it is offered only with the **Create** write setting.

> ⚠️ **Create change orders with Create, update them with Update.** **Update or Create** cannot create a change order: when the Id in the match rule finds no record, the step tries to create one without a Contract ID and the workflow fails.


## 4. Commitments

Procore keeps subcontracts and purchase orders in the **Commitments** tool. The app exposes them as two objects, **Commitment Subcontracts** and **Commitment Purchase Orders**, plus **Commitment Change Orders** for the change orders on either kind.

### Subcontracts and Purchase Orders

#### Fields

**Commitment Subcontracts:** Id, Number, Contract Company Name, Contract Company Id, Title, Status, Executed, Default Retainage, Description, Contract Date, Issued On Date, Grand Total, Created By Name, Inclusions, Exclusions, Contract Start Date, Contract Estimated Completion Date, Actual Completion Date, Signed Contract Received Date, Created At, Updated At.

**Commitment Purchase Orders:** Id, Number, Contract Company Name, Contract Company Id, Title, Status, Executed, Default Retainage, Description, Contract Date, Issued On Date, Grand Total, Created By Name, Assigned To Name, Assigned To Id, Bill To, Payment Terms, Ship To, Ship Via, Delivery Date, Signed Purchase Order Received Date, Created At, Updated At.

**Read only:** Id, Contract Company Name, Grand Total, Created By Name, Assigned To Name, Created At, Updated At. Every other field can be written.

A contract created from a workflow has no schedule of values, so Grand Total is 0. Add the line items in Procore to get the right total.

#### Writeback Behaviors

- **No field is required.** Status starts as `Draft` and Number continues the project's sequence for that type, including a manual suffix: after `SC-115-0822` comes `SC-115-0823`.
- **Contract Company Id takes the company's Id.** Use the Id from a Project Companies step. The exact company name also works, in any letter case, but only when one active company in the project carries it; otherwise the step fails.
- **Assigned To Id takes the Id of a user from your own company.** A user of a subcontractor or supplier company fails the step.
- **Status takes the values of its type.** See the table below. A Subcontract moves to `Out For Signature` only when it has a Contract Company.
- **Executed takes `true` or `false`.** `yes` / `no` and `1` / `0` also work.
- **An empty value leaves the field as it is.** A field cannot be cleared from a workflow.
- **A new Purchase Order without Bill To and Ship To copies them from the last Purchase Order created in the project.** Map both fields to set your own.
- **Description, Inclusions, Exclusions, Bill To, and Ship To read as plain text.** Line breaks are kept, formatting from the Procore editor is dropped.

| Object | Status values |
| --- | --- |
| Commitment Subcontracts | `Draft`, `Out For Bid`, `Out For Signature`, `Approved`, `Complete`, `Terminated`, `Void` |
| Commitment Purchase Orders | `Draft`, `Processing`, `Submitted`, `Partially Received`, `Received`, `Approved`, `Closed` |

> ⚠️ With **Update or Create**, map Number as a field to write as well. The value in the match rule is not written to a new record, so the new contract gets the next number and the next run creates another one.

#### Searching

- **Id returns one record.** Use it whenever the workflow has the Id, for example from the workflow start.
- **Status matches in any letter case.**
- **Filter by company with Contract Company Name or Contract Company Id.** Contract Company Id takes the Id only.
- **Dates follow the rule under [Dates](https://fluidlabs.com/documentation/procore-for-docusign#5-other-known-behaviors).**

### Commitment Change Orders

One object covers change orders on subcontracts and on purchase orders.

**Fields:** Id, Number, Title, Status, Contract ID, Executed, Description, Reference, Grand Total, Schedule Impact Amount, Due Date, Paid Date, Invoiced Date, Signed Change Order Received Date, Private, Change Reason, Change Reason Id, Location Id, Created By Name, Created By Id, Designated Reviewer Name, Designated Reviewer Id, Request Received From Name, Request Received From Id, Created At, Updated At, Reviewed At.

**Read only:** Id, Grand Total, Change Reason, Created By Name, Created By Id, Designated Reviewer Name, Request Received From Name, Created At, Updated At, Reviewed At.

- **Contract ID is the Id of the parent Subcontract or Purchase Order.** Take it from a Commitment Subcontracts or Commitment Purchase Orders step. It is set on Create and cannot be changed later. Create change orders with the **Create** write setting, see [Creating Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#creating-change-orders).
- **A change order created from a workflow has no line items, so Grand Total is 0.** Add the line items in Procore to get the right total.
- **Status takes the label Procore shows or the stored value.** See [Change Order Status](https://fluidlabs.com/documentation/procore-for-docusign#change-order-status).
- **Location Id takes the location's Id only.** A location name is not accepted and the step fails.
- **Designated Reviewer Id and Request Received From Id take a project user's Id.** Change Reason Id takes an Id from your company's change reason list.

#### Change order tiers

The Commitments tool has its own tier setting under **Configure Settings**. Commitment Change Orders work with 1 or 2 tiers there. 3 tiers are not supported. For the Prime Contracts tool, see [Prime Contracts](https://fluidlabs.com/documentation/procore-for-docusign#3-prime-contracts).


## 5. Other Known Behaviors

### Project Companies

**Project Companies** are the companies listed in the project's Directory under **Companies**. Your own company is in the list too, marked **YOUR COMPANY**.

#### Fields

Id, Name, Abbreviated Name, Trade Name / DBA, Email Address, Business Phone, Business Fax, Website, Address, City, State Code, ZIP, Country Code, License Number, Labor Union, Tags/Keywords, Primary Contact ID, Primary Contact First Name, Primary Contact Last Name, Primary Contact Email Address, Primary Contact Business Phone, Primary Contact Cell Phone, Entity Type, Entity Type Number, Created At, Updated At.

**Read only:** Id, Primary Contact First Name, Last Name, Email Address, Business Phone, Cell Phone, Created At, Updated At.

The fields come from the **General** tab of the company. Bidder Info, Insurance, Attachments, Logo, and Project Roles are not part of the object.

#### Reading

- **State Code and Country Code are ISO codes**, `IL` and `US`.
- **Entity Type reads as a code**, `ein` or `abn`. Entity Type Number has no dashes: `12-3456789` reads as `123456789`.
- **Address keeps its line breaks.**
- **Inactive companies are not returned.** A rule on the Id of an inactive company returns nothing.

#### Searching

- **Id returns one record and overrides every other condition.** Leave it out when the other conditions should decide. Two different Ids joined with AND stop the step.
- **Text matches in any letter case, and spaces around the value are ignored.**
- **Phone numbers, Website, and Entity Type Number match as stored.** `+1 217-555-0101` does not match `217-555-0101`, and a website does not match without `https://`.
- **Tags/Keywords match whole tags.** Separate several tags with a comma; the company has to carry all of them.
- **An empty value stops the step.** Check that the variable in the rule is filled before the step runs.
- **A single-record rule returns the first match.** Narrow the rule when several companies can match.

#### Writeback Behaviors

- **Name is required on Create.** Duplicate names are allowed.
- **State Code needs Country Code in the same step.** Both take ISO codes in any letter case: `il` is saved as `IL`.
- **Entity Type takes `EIN` or `ABN`.** Procore removes dashes and spaces from Entity Type Number.
- **Primary Contact ID takes the Id of a user of this company**, the value Primary Contact ID returns in a Read step. On Create it is ignored, since a new company has no users yet.
- **Email Address is not validated.** Procore stores whatever text it receives.
- **An empty value leaves the field as it is.** A field cannot be cleared from a workflow, and a company cannot be deactivated from a workflow.
- **An inactive company cannot be updated.** The step fails.

> ⚠️ **Entity Type and Entity Type Number depend on each other.** Map both in the same step, or leave both out. One without the other fails the workflow.

> ⚠️ **An EIN has exactly 9 digits.** A shorter or longer number fails the workflow. On Create, the company is saved before the EIN is checked, so fix the number and update that company instead of running Create again.

### Project Users

**Project Users** are the people listed in the project's Directory under **Users**.

**Fields:** Id, Name, First Name, Last Name, Email Address, Initials, Job Title, Business Phone, Business Phone Extension, Cell Phone, Business Fax, Address, City, State Code, ZIP, Country Code, Is Active, Tags/Keywords, Permission Template ID, Vendor ID, Vendor Name, Created At, Updated At.

**Read only:** Id, Name, Initials, Is Active, Vendor Name, Created At, Updated At. Procore sets Initials from the name.

#### Writeback Behaviors

- **Last Name and Email Address are required on Create.**
- **Permission Template ID is set on Create only and does not read back.** Copy the Id from the template's page URL in Procore: Company, Permissions, Project Permissions Templates. An unknown Id creates the user without a template.
- **Vendor ID takes the Id of a company from Project Companies.** It attaches the user to that company, on Create or Update.
- **Tags/Keywords is cleared by an update that does not include it.** Map it on every Update step.
- **State Code needs Country Code in the same step.** Both take ISO codes: `US` and `IN`, not `United States` and `Indiana`.
- **An email change may not take effect for a user who signs in through SSO or has several Procore accounts.** Procore keeps the login separate from Email Address.
- **Phone numbers are stored as entered.**
- **An empty value leaves the field as it is.** A field cannot be cleared from a workflow.

> ⚠️ **Business Phone Extension takes a whole number up to `99999999`.** A longer number or one with other characters fails the workflow.

#### Searching

The rules are the same as for [Project Companies](https://fluidlabs.com/documentation/procore-for-docusign#project-companies): Id overrides every other condition, text matches in any letter case, phone numbers match as stored, and an empty value stops the step.

### Dates

- **Dates take `YYYY-MM-DD` or an ISO 8601 date-time.** The date part is used as written, the time and zone are dropped. `09/10/2026` or `10.09.2026` stops the step.
- **Dates read as midnight UTC**, `2026-10-01T00:00:00Z`.

### File Upload Fallback

When File Upload cannot attach the file to a record, it still saves the file in the project's **Documents** in Procore, and the step does not fail.

- **The last folder holds an Id that matches no record.** The file is saved at the path you built: `Documents/Prime Contracts/Signed/12345/`.
- **The last folder is not an Id.** The file is saved under `Documents/Docusign/`, in a folder named after the drive, followed by your folders.

Look for the file in Documents when it does not appear on the record's **Attachments**.


## 6. Installation and Configuration

### Prerequisites

- A **Procore** account with access to the company and project you want to connect.
- 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 **Procore**.

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

- Click the **Procore** app card, then click **Install App**.

  ![The Procore app page in the Docusign App Center with the Install App button.](https://fluidlabs.com/images/documentation/procore-for-docusign/app-install.webp)

- Review the access the app requests and click **Install and Authorize**.

  ![The Install and authorize Procore app screen listing the requested access, with the Install and Authorize button.](https://fluidlabs.com/images/documentation/procore-for-docusign/install-authorize.webp)

The app now appears with an **Installed** status. Install the app in Procore before you connect your account.

### Installing the App in Procore

A Procore company admin installs the app once for the company.

- In Procore, open **Apps** in the top bar and click **App Management**.

  ![The Procore Apps menu open with the App Management button.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-app-management-menu.webp)

- Click **Install App** and choose **Install Custom App**.

  ![The Procore App Management page with the Install App menu open and Install Custom App highlighted.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-install-custom-app.webp)

- Enter the App Version ID `9f1810c2-c45a-4ff5-b890-0d8eab2d25ab` and click **Install**.

  ![The Procore Install App dialog asking for an App Version ID.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-app-version-id.webp)

> ⚠️ Installing by App Version ID is the current way to add the app to Procore. Installation from the Procore Marketplace will be added later.

### Connecting Your Account

- On the installed app page, click **Connect Account**.

  ![The installed Procore app page with the Connect Account button.](https://fluidlabs.com/images/documentation/procore-for-docusign/connect-account.webp)

- **Connection Visibility**: choose how the connection is shared, then click **Next**:

  - **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; Shared is selected.](https://fluidlabs.com/images/documentation/procore-for-docusign/connection-visibility.webp)

- **Name Connection**: enter a name that identifies the company and project, for example `Demo-Company-Project555`. It appears in workflow steps. Click **Log In**.

  ![The Name Connection step with the connection name Demo-Company-Project555 entered.](https://fluidlabs.com/images/documentation/procore-for-docusign/name-connection.webp)

- Sign in to Procore if you are not signed in already. On the **Allow access?** screen, click **Allow**.

  ![The Procore Allow access screen listing what the Procore for Docusign app can do, with the Deny and Allow buttons.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-allow-access.webp)

- **Choose your Procore company**: select your Procore company account, not a company inside a project, and click **Continue**.

  ![The Choose your Procore company step with a company selected and the Continue button.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-choose-company.webp)

- **Choose your default project**: select the project the connection works with and click **Finish & return to Docusign**.

  ![The Choose your default project step with a project selected and the Finish and return to Docusign button.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-choose-project.webp)

The connection is added and ready to use in workflow steps. Every step of this connection works with the project you picked.

### Managing Connections

On the Procore app page, open the **Manage** dropdown and select **Manage Connections** to see every connection.

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

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

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

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

- **Edit connection name**: rename the connection.
- **Reconnect**: refresh the connection. Run this once after an app update that changes its objects or fields.
- **Reload Objects**: refresh the available objects and fields.
- **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. Add one connection per project; each appears separately in workflow steps.


## 7. How to Use the App

### Create a Workflow

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

  ![The Docusign Workflows screen showing existing workflows and the Create Workflow button.](https://fluidlabs.com/images/documentation/procore-for-docusign/workflows-list.webp)

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

### Available Procore Actions

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

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

- **Read from Procore**: fetch a record and expose its fields as workflow variables. See [Read from Procore](https://fluidlabs.com/documentation/procore-for-docusign#8-read-from-procore).
- **Writeback to Procore**: update a record or create a new one. See [Writeback to Procore](https://fluidlabs.com/documentation/procore-for-docusign#9-writeback-to-procore).
- **File Upload to Procore**: save a document from the workflow in Procore and attach it to a record. See [File Upload to Procore](https://fluidlabs.com/documentation/procore-for-docusign#10-file-upload-to-procore).

A typical subcontract signing flow:

1. **Read from Procore**: read the Commitment Subcontract.
2. **Prepare eSignature Template**: pre-fill the subcontract.
3. **Send Documents for Signature**.
4. **File Upload to Procore**: attach the signed subcontract to the record.
5. **Writeback to Procore**: set Executed, Signed Contract Received Date, and Status.


## 8. Read from Procore

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

### Start the Workflow From an API Call

In this example the workflow starts **From an API Call** and receives the Id of the record to read.

On the workflow canvas, click **Add workflow start**.

- **Select a method**: choose **From an API Call**.

  ![The Add workflow start panel with From an API Call selected as the method.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-workflow-start-method.webp)

- **Set up variables**: add a **Text** variable named `object_id`.

  ![The variables step with a Text variable named object_id.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-workflow-start-variable.webp)

- **Process type**: choose **Automated process** and click **Apply**.

  ![The process-type step with Automated process selected and the Apply button.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-workflow-start-process.webp)

Once published, the workflow has a URL your external system calls, passing `object_id`.

### 1. Add the Read Step

On the workflow canvas, click **+** below **Start Workflow**.

![The workflow canvas with the add a step button below the From an API call start.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-add-step-canvas.webp)

Search for **Procore** and select **Read from Procore**.

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

### 2. Configure Connection and Object

- **Connection**: select the connection you created during [installation](https://fluidlabs.com/documentation/procore-for-docusign#6-installation-and-configuration).

  ![The Read step Connection dropdown showing the Procore connection.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-configure-connection.webp)

- **Procore object**: choose one of the [supported objects](https://fluidlabs.com/documentation/procore-for-docusign#2-supported-objects). This example uses **Commitment Subcontracts**.

  ![The Procore object dropdown in the Read step with Commitment Subcontracts highlighted.](https://fluidlabs.com/images/documentation/procore-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.

![The Fields step with the Add or Remove Fields button and the Id field selected.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-select-fields.webp)

![The Fields step listing the selected Commitment Subcontracts fields.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-selected-fields.webp)

The fields of each object are listed under [Prime Contracts](https://fluidlabs.com/documentation/procore-for-docusign#3-prime-contracts), [Commitments](https://fluidlabs.com/documentation/procore-for-docusign#4-commitments), and [Other Known Behaviors](https://fluidlabs.com/documentation/procore-for-docusign#5-other-known-behaviors).

Click **Next**.

### 4. Identify the Record

Create a rule that tells the step which record to read. In this example, match the Procore **Id** to the `object_id` variable from the workflow start:

- **Procore field:** Id
- **Operator:** Equal to
- **Workflow field:** `object_id`, under **Variables From Workflow Start**

![The variable picker in the Read rule with object_id under Variables From Workflow Start.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-identify-variable-picker.webp)

![The record-matching rule: Id equals object_id, with the Done button.](https://fluidlabs.com/images/documentation/procore-for-docusign/read-identify-record.webp)

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

- **A single record**: the first record that matches.
- **Multiple records**: up to five matching records.

Use **preview this step** to check the rule against live data. Click **Apply**.

How each object matches its fields is described under the object's section.


## 9. Writeback to Procore

The **Writeback to Procore** step updates a record or creates a new one.

### 1. Add the Writeback Step

On the workflow canvas, click **+** where the writeback belongs, for example after **Send Documents for Signature**. Search for **Procore** and select **Writeback to Procore**.

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

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

- **Connection**: select your Procore connection.

  ![The Writeback step Connection dropdown showing the Procore connection.](https://fluidlabs.com/images/documentation/procore-for-docusign/writeback-configure-connection.webp)

- **Procore object**: choose the object to write to. In most workflows it is the object of your Read step.

  ![The Procore object dropdown in the Writeback step with Commitment Subcontracts highlighted.](https://fluidlabs.com/images/documentation/procore-for-docusign/writeback-configure-object.webp)

- **Write settings**:

  - **Update or Create**: updates the matching record, or creates one if the match rule finds nothing.
  - **Update**: updates an existing record only. The step fails when nothing matches.
  - **Create**: always creates a record.

  For change orders, **Update or Create** cannot create a record. See [Creating Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#creating-change-orders).

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

Click **Next**.

### 3. Map Fields

Click **Add or Remove Fields** and tick the fields you want to write. Each selected field gets its own row; map it to the workflow variable that supplies the value.

![The Writeback Fields step with Number, Title, Status, and Contract Start Date rows and the variable picker open.](https://fluidlabs.com/images/documentation/procore-for-docusign/writeback-map-fields.webp)

**Overwrite if field value exists** decides what happens to fields that already hold a value in Procore:

- **Unticked**: only fields that are empty in Procore are written.
- **Ticked**: every mapped field is written.

⚠️ **Map from the right source.** The variable picker also lists the output of your **Read from Procore** step. Mapping from there writes the original values back unchanged. Map from the step that produced the new data, such as **Send Documents for Signature** or **Collect Data with Web Forms**.

Click **Next**.

### 4. Identify the Record

Address the record by Id:

- **Procore field:** Id
- **Operator:** Equal to
- **Workflow field:** the Id from a Read or Writeback step on the same object, or `object_id` from the workflow start

Variables from a Procore step carry the object's short name, for example `subcontracts / Id` for Commitment Subcontracts. See [Variable Prefixes](https://fluidlabs.com/documentation/procore-for-docusign#variable-prefixes).

![The variable picker in the Writeback rule with subcontracts / Id under Read from Procore.](https://fluidlabs.com/images/documentation/procore-for-docusign/writeback-identify-variable-picker.webp)

![The record-matching rule for Writeback: Id equals the subcontracts / Id variable.](https://fluidlabs.com/images/documentation/procore-for-docusign/writeback-identify-record.webp)

Each step returns the Id of its own object. A Commitment Change Orders step returns the change order's Id; for the contract, use the Id from a Commitment Subcontracts or Commitment Purchase Orders step.

Click **Apply**.


### Variable Prefixes

Every variable from a Procore step starts with the object's short name.

| Object | Variable prefix |
| --- | --- |
| Prime Contracts | `primeContracts` |
| Prime Contract Change Orders | `primeCOs` |
| Potential Change Orders | `potentialCOs` |
| Commitment Subcontracts | `subcontracts` |
| Commitment Purchase Orders | `purchaseOrders` |
| Commitment Change Orders | `commitmentCOs` |
| Project Users | `projectUsers` |
| Project Companies | `projectCompanies` |


## 10. File Upload to Procore

The **File Upload to Procore** step saves a document produced earlier in the workflow to the project's **Documents** in Procore and attaches it to a record's **Attachments**.

### 1. Add the File Upload Step

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

![The File Upload step on the workflow canvas with the Edit button.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-step-card.webp)

### 2. Select the File

Choose the file or envelope from an earlier step. In this example it is the **Combined Envelope File** from **Send Documents for Signature**.

![The file picker with Combined Envelope File selected.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-select-file.webp)

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

### 3. Choose the Drive

- **Select connection**: your Procore connection.
- **Select drive**: the kind of record to attach to, or **Docusign Documents** to save the file without attaching it.

![The Select drive dropdown listing the six record drives and Docusign Documents.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-select-drive.webp)

Each record drive attaches the file to a record of the same object and saves it in the project's **Documents**, in a folder named after the drive: the Commitment Subcontracts drive attaches to a subcontract and saves the file under `Documents/Commitment Subcontracts/`. **Docusign Documents** saves the file without attaching it, see [The Docusign Documents Drive](https://fluidlabs.com/documentation/procore-for-docusign#the-docusign-documents-drive).

### 4. Point the Folder at the Record

**File Upload takes the Id of the record to attach to from the folder.** Pick the drive of the object, then put the Id of the record in the folder: with the **Prime Contracts** drive, the folder holds the Id of the prime contract the file belongs to. With several folders, the Id goes in the last one, see [Organizing Files in Folders](https://fluidlabs.com/documentation/procore-for-docusign#organizing-files-in-folders).

- Open the **Select folder** dropdown and pick **New Subfolder**.

  ![The Select folder dropdown open with the New Subfolder option highlighted.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-new-subfolder.webp)

- In the **New folder** dialog, click **Add Variable**, choose the step that returns the record, and select **Id**. A Read or Writeback step on the same object returns it: for the Prime Contract Change Orders drive, take `primeCOs / Id`. The prefixes of all objects are listed under [Variable Prefixes](https://fluidlabs.com/documentation/procore-for-docusign#variable-prefixes).

  ![The Add Variable menu in the New folder dialog with primeCOs / Id under Read from Procore.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-add-variable-id.webp)

- The variable appears in the **Folder name** field. Click **Add**.

  ![The New folder dialog with the primeCOs / Id variable in the Folder name field and the Add button.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-folder-name-id.webp)

- **Select folder** now shows the Id variable. Click **Next**.

  ![The File Upload location with the Prime Contracts drive, the primeContracts / Id variable as the folder, and the Next button.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-record-drive-location.webp)

To keep the files in your own folders before the Id, see [Organizing Files in Folders](https://fluidlabs.com/documentation/procore-for-docusign#organizing-files-in-folders).

### 5. Name the File

Build the file name from **Add Text** and **Add Variable**. A timestamp variable keeps repeat runs from producing identical names; `:` in the timestamp is saved as `-`.

![The file name step with the text Signed Agreement and a Start Date and Time variable, and the resulting file path.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-file-name.webp)

Click **Apply**. On a record drive, the file lands on the record's **Attachments**. A second file on the same record is added next to the first.

If the file cannot be attached, the step still saves it in Documents. See [File Upload Fallback](https://fluidlabs.com/documentation/procore-for-docusign#file-upload-fallback).

### Organizing Files in Folders

The same folder logic works on every drive. Folders you add before the Id are created in Documents as you name them, and on a record drive the record is still taken from the last folder.

- Pick **New Subfolder**, click **Add Text**, type a folder name, and click **Add**.

  ![The New folder dialog with the Add Text button.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-add-text.webp)

  ![The New folder dialog with the text CompanyA as the folder name.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-folder-text.webp)

- Click **Add Subfolder** for the next level, and repeat.

  ![The New folder dialog with the text SignedDocs as the subfolder name.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-subfolder-text.webp)

- Add the record's Id as the last subfolder, then click **Next**.

  ![The File Upload location with three levels: CompanyA, SignedDocs, and a subcontracts / Id variable, and the Next button.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-multilevel-location.webp)

Procore stores the file in a folder named after the drive, then your folders, then the Id:

![Procore Documents showing the Prime Contract Change Orders folder with the NewConnection and CompanyNameABC subfolders and a record Id folder holding the uploaded file.](https://fluidlabs.com/images/documentation/procore-for-docusign/procore-documents-folders.webp)

### The Docusign Documents Drive

**Docusign Documents** saves the file under `Documents/Docusign/` in the folders you build, and attaches it to nothing. Use it to keep files for Project Users and Project Companies, which have no drive of their own: Procore does not let an app attach files to them yet. It also fits documents with no record in Procore. Folders work the same way as on any drive.

![The File Upload location with the Docusign Documents drive and a primeCOs / Id variable as the folder.](https://fluidlabs.com/images/documentation/procore-for-docusign/file-upload-docusign-documents-folder.webp)


## 11. FAQ & Troubleshooting

**The step ran, but a field in Procore did not change.**
> The field already had a value and **Overwrite if field value exists** is unticked. Tick it on the step.

**Update or Create created a second contract.**
> Map Number as a field to write, not only in the match rule. See [Subcontracts and Purchase Orders](https://fluidlabs.com/documentation/procore-for-docusign#subcontracts-and-purchase-orders).

**Update or Create fails on a change order when the Id matches no record.**
> **Update or Create** cannot create a change order: Contract ID is offered only with **Create**. Use **Create** for a new change order and **Update** for an existing one. See [Creating Change Orders](https://fluidlabs.com/documentation/procore-for-docusign#creating-change-orders).

**A new Purchase Order has a Bill To and Ship To I did not set.**
> Procore copies them from the last Purchase Order in the project. Map both fields in the step.

**How do I clear a field?**
> Not from a workflow. An empty value leaves the field as it is. Clear it in Procore.

**The rule does not find a company I can see in Procore.**
> The company is inactive, or the phone number, website, or number in the rule is written differently from how Procore stores it. Copy the value as the Read step returns it.

**Contract Company Id with a company name fails.**
> Two active companies in the project share that name. Use the company's Id.

**The file is in Documents, but not on the record's Attachments.**
> The last folder did not hold the Id of a record on that drive. Put the Id from a step on the same object in the last folder. See [File Upload Fallback](https://fluidlabs.com/documentation/procore-for-docusign#file-upload-fallback).

**A field or object I expect is missing from the step.**
> Open **Manage Connections**, click **Reconnect** on the connection, then reopen the step.

---

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