# Zoho Recruit for Docusign IAM

> Connect Zoho Recruit to your Docusign agreement workflows. Read candidates and job openings to pre-fill offer letters, create or update candidates, add notes, and file the signed document in the candidate's Attachments in Zoho Recruit.

- Web page: https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam
- Published by: Fluidlabs
- Status: Live on the Docusign App Center
- Docusign App Center listing: https://apps.docusign.com/app-center/app/3ec1e350-4a98-4bd3-8dca-61fbfd2a8834
- App page: https://fluidlabs.com/integrations/zoho-recruit-for-docusign-iam
- Last updated: 2026-09-30
- Support: docusign-support@fluidlabs.com

## Contents

- [Quick Start](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#1-quick-start)
- [Implementation Guide & Known Behaviors](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#2-implementation-guide--known-behaviors)
- [Installation and Configuration](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#3-installation-and-configuration)
- [How to Use the App](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#4-how-to-use-the-app)
- [Read from Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#5-read-from-zoho-recruit)
- [Writeback to Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#6-writeback-to-zoho-recruit)
- [File Upload to Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#7-file-upload-to-zoho-recruit)
- [FAQ & Troubleshooting](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#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 **Zoho Recruit**.
- Open the **Zoho Recruit** 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 Zoho Recruit, then click **Accept** on the Zoho consent screen.

### 3. Create a Workflow

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

### 4. Available Actions

- [**Read from Zoho Recruit**](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#5-read-from-zoho-recruit): pull a Candidate or a Job Opening into your workflow to pre-fill an offer letter.
- [**Writeback to Zoho Recruit**](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#6-writeback-to-zoho-recruit): create or update a candidate, or add a note to one.
- [**File Upload to Zoho Recruit**](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#7-file-upload-to-zoho-recruit): file the signed document in the candidate's **Attachments**.

### 5. Key Things to Know

- Every later step addresses a candidate by its **Record ID** (a long number such as `97079000000497001`), not by the **Candidate ID** Zoho shows on the record (`ZR_1_CAND`). The Read and Writeback steps return the Record ID.
- File signed documents under **Contracts** or **Others**. Resume, Cover Letter and Offer hold one file per candidate.
- When a step fails, Docusign shows "Something went wrong". The usual causes are listed under [FAQ & Troubleshooting](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#8-faq--troubleshooting).


## 2. Implementation Guide & Known Behaviors

The app works with three objects:

| Object | What the app can do | Fields |
| --- | --- | --- |
| Candidate | Read, create, update | 32 |
| Job Opening | Read | 26 |
| Note | Create, always on a candidate | 4 |

Field labels match the Zoho Recruit screens. A label ending in **(Searchable)** marks a field a Read step can filter by; Record ID can always be used. After an app update that changes fields, run **Reconnect** under **Manage Connections** so the steps show the new list.

### Building Workflows

- Read a candidate with a **Read from Zoho Recruit** step filtered by Email or Candidate ID, then use the **Record ID** it returns in every later step: Update, Note (Candidate Record ID) and File Upload (the subfolder).
- **Update or Create keyed on Email is safe.** A repeated run finds the candidate and updates it. If the lookup misses a candidate created moments earlier, Zoho Recruit still refuses a second candidate with the same Email, in any letter case, and the step fails instead of creating a duplicate.
- **Search right after a write.** Zoho Recruit takes up to about two minutes to make a new or changed candidate findable by a rule that combines conditions on First Name or Email. A single-condition rule or a Record ID read finds it at once, so key Update or Create steps on one field, such as Email or Record ID.
- A Read step that finds no record does not stop the workflow. Its variables are empty.
- The Writeback step returns the **Record ID** of the candidate it created or updated. Use it in a later Note or File Upload step.

### Writeback Behaviors

#### Updating a candidate

| Topic | Behavior |
| --- | --- |
| Last Name | Required, so Docusign maps it on every Update. It replaces a Last Name the candidate already has only when **Overwrite if field value exists** is ticked under it. |
| Other mapped fields | Always written. |
| Empty values | Ignored. A field cannot be cleared from a workflow. |
| Candidate Status | Written in the same update as the other fields. Values must come from your account's list; letter case and surrounding spaces do not matter (`in review` is stored as `In Review`). |
| Candidate Stage, Origin | Read only. Zoho Recruit ignores changes to them. |
| Zoho automation | Your workflow rules, approvals and blueprints run as they do for an edit in Zoho Recruit. |

#### Creating a candidate

Last Name is required. Zoho Recruit fills in **Source** "Added by User", **Candidate Status** "New", **Origin** "Sourced" and **Candidate Stage** "New" when you do not set them. The Email must not belong to another candidate.

#### Field values

| Field | What to know |
| --- | --- |
| Salutation, Highest Qualification Held, Source, Candidate Status | Picklists. The value must be one of your account's options, in any letter case. Zoho Recruit puts the Salutation in front of Full Name. |
| Current Job Title | Checked against your account's list when your account makes it a picklist; free text otherwise. |
| Experience in Years, Current Salary, Expected Salary | Numbers with a dot for decimals: `95000.00`, `95,000.00` and `$95000` are accepted; a decimal comma (`77,50`) is refused. Zoho Recruit accepts negative values and allows up to 5 characters in Experience in Years. |
| Skill Set, Additional Info | Written exactly as given, line breaks included. |
| Email | Unique per account. Secondary Email is not checked against other candidates. |

Zoho Recruit stores most text as sent, including accents, dashes and non-Latin scripts. It replaces emoji with `?` in every field, and symbols such as ✓ with `?` in notes.

#### Notes

The **Note** object is create-only and always belongs to a candidate:

| Field | What to know |
| --- | --- |
| Candidate Record ID | Required. The candidate's Record ID from a Read or Writeback step. |
| Note Content | Required. Stored exactly as given. |
| Note Type | Optional. One of your account's Note Types (Call, Meeting, Notes, Others, plus any your administrator added). Left empty, the note is filed under **Notes**. The app never creates a Note Type. |

### Searching for a Record

#### Searchable fields

| Object | Fields |
| --- | --- |
| Candidate | Record ID, Candidate ID, First Name, Last Name, Email, Mobile, Candidate Status |
| Job Opening | Record ID, Job Opening ID, Posting Title, Job Opening Status |

Any other field in the rule stops the step. Dates, numbers, and people fields such as Candidate Owner or Hiring Manager are not searchable.

#### Matching

- **Letter case never matters. Accents do:** `Zoe` does not find `Zoë`.
- **Record ID** takes Equal to only and overrides every other condition in the rule. An unknown Record ID returns nothing.
- **Candidate ID and Job Opening ID** are the `ZR_…` numbers Zoho Recruit shows. Putting one into Record ID stops the step with a hint to search Candidate ID instead.
- **First Name, Last Name, Email, Mobile and Posting Title** support Equal to, Not equal to, Starts with, Contains and Ends with. Not equal to also returns records where the field is empty.
- **Candidate Status and Job Opening Status** take Equal to and a value from your account's list.
- **Mobile** compares the stored formatting: `+34612345678` does not find `+34 612 345 678`.
- **One value per condition.** A `;` separates two values and stops the step, except in Posting Title, where it is part of the title.
- A rule can hold up to 10 conditions.
- **AND and OR in one rule.** The rule editor lists conditions without parentheses, and Docusign groups them from the right: `A OR B AND C` is read as `A OR (B AND C)`. Keep a rule to one connector, all AND or all OR, or check the result with **preview this step**.

> ⚠️ An Email search returns one candidate, because Email is unique. A Last Name search can return several: add a second condition or use **A single record**.

### Reading Record Data

| Type | Reads as |
| --- | --- |
| Date and time | UTC: `2026-09-22T23:40:10.000Z` |
| Date only (Target Date, Date Opened) | 12:00 UTC on that date: `2026-12-15T12:00:00.000Z` |
| Picklists | The wording your account shows, for example Country `Spain` |
| Remote Job | `true` or `false` |
| Number of Positions | A whole number |
| Assigned Recruiters | Names separated by `; ` |
| Job Description | Plain text with line breaks |

- **Full Name** includes the salutation: `Ms. Ana Smith`.
- **Department or Client** and **Hiring Manager or Account Manager** are single Zoho Recruit fields whose meaning depends on your edition: Department and Hiring Manager on Corporate HR, Client and Account Manager on Staffing.
- Empty fields are left out of the result.
- State and Zip labels follow your Zoho Recruit locale, so your screens may say **Province** and **Postal Code**.

### Applications Module

New Zoho Recruit accounts use the **Applications** module, where the status per job lives on the application. The app works with the candidate itself: **Candidate Status** is the candidate-level status, and **Candidate Stage**, which carries values such as Offered and Hired, is read-only.


## 3. Installation and Configuration

### Prerequisites

- A **Zoho Recruit** account with permission to authorize integrations, in any Zoho data center except China.
- 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 **Zoho Recruit** in the search bar.

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

- Click the **Zoho Recruit** app card to open its detail page, then click **Install App**.

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

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

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

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

### Connecting Your Account

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

  ![The installed Zoho Recruit app page showing the Connect Account button.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/connect-account.webp)

- **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/zoho-recruit-for-docusign-iam/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/zoho-recruit-for-docusign-iam/name-connection.webp)

- Sign in to Zoho if you are not signed in already. Every sign-in starts at accounts.zoho.com; Zoho moves you to your own data center (for example accounts.zoho.eu) by itself.

  ![The Zoho sign-in page asking for an email address or mobile number.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/zoho-login.webp)

- On the Zoho consent screen, the app is named **Docusign IAM Connector to Recruit module**. Review the access it requests and click **Accept**.

  ![The Zoho consent screen for Docusign IAM Connector to Recruit module listing the requested access, with Accept and Reject buttons.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/zoho-consent.webp)

The connection is added and ready to use in workflow steps.

> The Zoho consent screen appears every time you create a connection. It lists "To manage settings related details": the app only reads settings, to check field values, Note Types and attachment categories against your account.

> Zoho limits how often the sign-in page can be opened. After many connection attempts in a few minutes it shows "Maximum request limit reached"; wait a few minutes and try again.

### Managing Connections

On the Zoho Recruit app page, open the **Manage** dropdown.

![The Manage dropdown on the Zoho Recruit app page showing New Connection, Manage Connections, and Manage Apps.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/manage-connections-menu.webp)

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

![The Zoho Recruit connections list showing a connection with an Active status and the New Connection button.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/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/zoho-recruit-for-docusign-iam/connections-actions-menu.webp)

- **Edit connection name**: rename the connection.
- **Reconnect**: refresh the connection. Run this once after an app update that changes its fields or objects.
- **Reload Objects**: refresh the available record types 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. Each connection appears separately in workflow steps, and each works with the Zoho Recruit account of the user who signed in.

### Revoking Access from Zoho

In your Zoho account settings (accounts.zoho.com), open **Sessions → Connected Apps** and remove **Docusign IAM Connector to Recruit module**. That stops every Docusign connection created by that Zoho user. Zoho keeps up to 20 connections per user and app; creating more retires the oldest one.


## 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/zoho-recruit-for-docusign-iam/workflow.webp)

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

### Available Zoho Recruit Actions

Click **+ Add Step** and search for **Zoho Recruit**:

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

- **Read from Zoho Recruit**: fetch a **Candidate** or a **Job Opening** and expose its fields as workflow variables. See [Read from Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#5-read-from-zoho-recruit).
- **Writeback to Zoho Recruit**: create or update a **Candidate**, or create a **Note** on one. See [Writeback to Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#6-writeback-to-zoho-recruit).
- **File Upload to Zoho Recruit**: store a document from the workflow in a candidate's **Attachments**. See [File Upload to Zoho Recruit](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#7-file-upload-to-zoho-recruit).

A typical hiring flow:

1. **Read from Zoho Recruit**: find the candidate, and the job opening for the offer details.
2. **Prepare eSignature Template**: pre-fill the offer letter.
3. **Send Documents for Signature**.
4. **File Upload to Zoho Recruit**: file the signed offer under **Contracts** on the candidate.
5. **Writeback to Zoho Recruit**: update the Candidate Status or add a note.

Job openings are read-only. There is no writeback to a job opening.


## 5. Read from Zoho Recruit

The **Read from Zoho Recruit** 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, `candidate_email`, that carries the candidate's email address. Any start type works: with a web form, use the form's email field wherever this example uses `candidate_email`.

![The Add workflow start panel: From an API Call with a Text variable named candidate_email.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/read-workflow-start.webp)

### 1. Add the Read Step

On the workflow canvas, click **+ Add a step** below the start.

![The workflow canvas with the Add a step button below Start Workflow.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/read-add-step-canvas.webp)

Search for **Zoho Recruit** and select **Read from Zoho Recruit**.

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

### 2. Configure Connection and Object

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

  ![The Read step Connection dropdown showing the Zoho Recruit connection.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/read-configure-connection.webp)

- **Zoho Recruit object**: choose **Candidate** or **Job Opening**. This example uses **Candidate**.

  ![The Zoho Recruit object dropdown showing Candidate and Job Opening.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/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 field browser listing Candidate fields with checkboxes, the searchable ones marked (Searchable).](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/read-fields-browser.webp)

Available fields:

**Candidate:** Record ID, Candidate ID, Salutation, First Name, Last Name, Full Name, Email, Secondary Email, Phone, Mobile, Street, City, State/Province, Zip/Postal Code, Country, Current Job Title, Current Employer, Experience in Years, Highest Qualification Held, Current Salary, Expected Salary, Skill Set, Additional Info, Source, Origin, Candidate Status, Candidate Stage, Candidate Owner Name, Candidate Owner ID, Created Time, Modified Time, Last Activity Time.

**Job Opening:** Record ID, Job Opening ID, Posting Title, Title, Job Opening Status, Job Type, Remote Job, Department or Client Name, Department or Client ID, Hiring Manager or Account Manager Name, Hiring Manager or Account Manager ID, Assigned Recruiters (semicolon-separated), Target Date, Date Opened, Number of Positions, Industry, Work Experience, Salary, Required Skills, City, State/Province, Country, Zip/Postal Code, Job Description, Created Time, Modified Time.

Click **Next**.

### 4. Identify the Record

Create a rule that tells the step which record to read. In this example, match the candidate's **Email** to the `candidate_email` start variable:

- **Zoho Recruit field:** Email (Searchable)
- **Operator:** Equal to
- **Workflow field:** `candidate_email`

![The record-matching rule: Email equals the candidate_email variable, with A single record selected.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/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.

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

![The preview of a Read step showing one candidate's fields as read from Zoho Recruit.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/read-preview.webp)

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


## 6. Writeback to Zoho Recruit

The **Writeback to Zoho Recruit** step creates a candidate, updates one, or adds a note to one.

### 1. Add the Writeback Step

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

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

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

- **Connection**: select your Zoho Recruit connection.

- **Zoho Recruit object**: choose **Candidate** or **Note**. This walkthrough uses Candidate.

  ![The Zoho Recruit object dropdown for the Writeback step showing Candidate and Note.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/writeback-configure-object.webp)

- **Write settings**:

  - **Update or Create**: updates the matching candidate, or creates one if the rule finds nothing.
  - **Update**: updates an existing candidate only.
  - **Create**: always creates a candidate.

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

Click **Next**.

### 3. Map Fields

Click **Add or Remove Fields** and tick the fields you want to write.

![The field browser listing the writable Candidate fields with checkboxes.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/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 Last Name, Email and Candidate Status mapped.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/writeback-map-fields.webp)

**Writable Candidate fields:** Salutation, First Name, Last Name\*, Email, Secondary Email, Phone, Mobile, Street, City, State/Province, Zip/Postal Code, Country, Current Job Title, Current Employer, Experience in Years, Highest Qualification Held, Current Salary, Expected Salary, Skill Set, Additional Info, Source, Candidate Status.

_\* Last Name is required. To change a Last Name the candidate already has, tick **Overwrite if field value exists** under it._

In this example the step updates the candidate the Read step found: **Last Name** comes from the Read step with **Overwrite if field value exists** unticked, so it stays as it is; **Email** comes from `candidate_email`; **Candidate Status** is set to **Qualified**.

⚠️ **Map from the right source.** The variable picker also lists the output of your **Read from Zoho Recruit** 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.

Click **Next**.

### 4. Identify the Record

Match the candidate by **Email** or by **Record ID**:

- **Zoho Recruit field:** Email (Searchable)
- **Operator:** Equal to
- **Workflow field:** the **Email** of the Read from Zoho Recruit step (or `candidate_email`)

![The record-matching rule for Writeback: Email equals the Read step's Email.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/writeback-identify-record.webp)

Click **Apply**.

With **Update or Create**, an email that no candidate has yet creates the candidate; running the workflow again with the same email updates it.

### Writing a Note

Select **Note** as the Zoho Recruit object. **Create** is the only write setting.

![The Note object with Create as the only write setting.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/note-write-settings.webp)

Map **Candidate Record ID** and **Note Content**, both required. Add **Note Type** through **Add or Remove Fields** to choose one of your account's Note Types; left out, the note is filed under **Notes**.

![The Note fields: Candidate Record ID mapped to the Writeback step's Record ID, and Note Content.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/note-fields.webp)

For Candidate Record ID, use the **Record ID** of a Read from Zoho Recruit step on Candidates or of a Candidate Writeback step. The note appears in the candidate's **Notes** in Zoho Recruit.

![Notes on the candidate in Zoho Recruit; the newest, titled Notes, was added by the workflow.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/note-in-zoho.webp)


## 7. File Upload to Zoho Recruit

The **File Upload to Zoho Recruit** step files a document produced earlier in the workflow in a candidate's **Attachments**, under the attachment category you pick. Maximum size is 20 MB.

### 1. Add the File Upload Step

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

![The Add New Step dialog with File Upload to Zoho Recruit highlighted.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/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**.

![The file picker showing the envelope files of the signing step.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-select-file.webp)

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

### 3. Choose the Category

- **Select connection**: your Zoho Recruit connection.
- **Select drive**: each drive is one of your account's attachment categories. Pick **Contracts** or **Others** for signed documents.

  ![The Select drive dropdown listing Others, Resume, Cover Letter, Offer and Contracts.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-select-drive.webp)

Resume, Cover Letter and Offer are marked **one file per candidate**: Zoho Recruit keeps a single file in them, so a second upload is refused and nothing is replaced.

### 4. Point the Folder at the Candidate

The subfolder holds the candidate's **Record ID**. Zoho Recruit creates no folder; the app uses the value to find the candidate.

- Click **Add Folder**, open the **Select folder** dropdown and pick **New Subfolder**.

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

- In the **New folder** dialog, click **Add Variable**, choose the step that returns the candidate, select **Record ID** and click **Add**.

  ![The variable picker with Record ID selected from the Writeback to Zoho Recruit step.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-add-variable-record-id.webp)

- **Select folder** now shows the Record ID variable. Click **Next**.

  ![The File Upload location with the connection, the Contracts drive, and a Record ID variable as the folder.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-location-set.webp)

A Read from Zoho Recruit step on Candidates or a Candidate Writeback step returns the candidate's Record ID. A Note step returns the note's, and a Job Opening read returns the job's: neither is a candidate.

### 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 name step with text and variable chips.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-file-name.webp)

In the name, characters other than letters, digits, spaces and `. - _ # ' , & ( ) +` are replaced with `_`, so a time `10:00:00` is stored as `10_00_00`. `.pdf` is added when the name has no extension.

Click **Apply**.

### 6. Verification

After the workflow runs, the document appears in the candidate's **Attachments** in Zoho Recruit, under the category you chose.

![The candidate's Attachments in Zoho Recruit showing the signed PDF under the Contracts category.](https://fluidlabs.com/images/documentation/zoho-recruit-for-docusign-iam/file-upload-verification.webp)

Sending the same file to the same candidate and category again within 10 minutes files it once.


## 8. FAQ & Troubleshooting

**A step failed and Docusign only says "Something went wrong".**
> Docusign does not show the app's message. The usual causes: a value outside a picklist (Candidate Status, Salutation, Source, Highest Qualification Held), an Email another candidate already has, a Record ID that is not a candidate's, a second file into Resume, Cover Letter or Offer, or a rule on a field that is not searchable.

**The Zoho consent screen appears every time I create a connection.**
> That is how Zoho authorizes the app. Earlier connections stay **Active** under **Manage Connections**.

**Zoho shows "Maximum request limit reached" while I connect.**
> Zoho limits how often its sign-in page opens. Wait a few minutes and connect again.

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

**My search does not find a candidate I just created.**
> Zoho Recruit needs up to about two minutes before a new candidate is found by a rule that combines First Name or Email with other conditions. Search by Email alone, or read by Record ID.

**Searching "Zoe" does not return "Zoë".**
> Accents are matched exactly. Search with the accent, or use Starts with on the part before it.

**Why can't I search by City, Owner, or a date?**
> Only the fields marked **(Searchable)** can be used in a rule, plus Record ID. Search by one of them and read the other fields from the result.

**My rule mixes AND and OR and returns records I did not expect.**
> The rule editor shows no parentheses. Docusign groups the conditions from the right, so `A OR B AND C` means `A OR (B AND C)`. Split the rule into separate Read steps, or use only AND or only OR in one rule.

**I put the Candidate ID (ZR_…) in Record ID and the step failed.**
> Record ID is the long number Zoho Recruit uses internally. Search Candidate ID with the `ZR_…` value, or use the Record ID a Read step returns.

**My update did not change the Last Name.**
> Tick **Overwrite if field value exists** under Last Name in the Writeback step.

**How do I clear a field?**
> Not from a workflow: empty values are ignored. Clear it in Zoho Recruit.

**A Candidate Status value such as "Offered" or "Hired" is refused.**
> Candidate Status takes only the values of your account's Candidate Status list. On accounts with the Applications module, Offered and Hired belong to Candidate Stage, which is read-only. See [Applications Module](https://fluidlabs.com/documentation/zoho-recruit-for-docusign-iam#2-implementation-guide--known-behaviors).

**The Note Type I entered is refused.**
> The value must be one of your account's Note Types. Leave Note Type empty to file the note under Notes, or ask your administrator to add the type in Zoho Recruit Setup.

**The upload to Offer (or Resume, Cover Letter) failed.**
> Those categories hold one file per candidate and already have one. Remove it in Zoho Recruit, or upload to Contracts or Others.

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

**The file did not appear on the candidate.**
> The folder has to hold the candidate's Record ID variable, from a step that runs before the upload. A Record ID taken from a Note step or a Job Opening read is not a candidate's.

**An emoji in my note shows as "?".**
> Zoho Recruit replaces emoji, and in notes symbols such as ✓, with `?`. Accented and non-Latin letters are kept.

---

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