# Zoho Creator

> Low-code application platform. Add, read, update and delete records in your Creator apps, and upload and download their files.

App · Databases · 17 actions. Web page: https://docs.lodol.com/docs/integrations/zoho-creator

## Actions

### Add record

Add a record through a form. Files are added afterwards with 'Upload file'.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Form (`form`, text, required): The form. Pick it, or type its link name.
- Data (`data`, object, required): The value for each field to set. Fields left blank are not sent.
- Return fields (`return_fields`, list): Optional. Link names of fields whose saved values to return with the record ID.
- Skip workflows (`skip_workflow`, list): Optional. Workflows not to run for this change. Only the application's administrators and developers can skip them. One or more of: `form_workflow` (Form workflows), `schedules`, `all` (All workflows).

**Outputs**: A record that was written.

- `data` (object): The ID, plus any fields asked for in 'Return fields'.
- `id` (text): The record ID.
- `message` (text): Zoho Creator's confirmation.
- `tasks` (object): What the form's workflow asked to happen next, if anything.

**Example output**

```json
{
  "data": {
    "ID": "3888833000000114027"
  },
  "id": "3888833000000114027",
  "message": "Data Added Successfully!"
}
```

### Add records

Add up to 200 records through a form in one call. Records Zoho refuses are listed under 'failed' with the reason.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Form (`form`, text, required): The form. Pick it, or type its link name.
- Records (`records`, list, required): A list of records, each an object of field link name to value, e.g. [{"Order_Number": "A-1"}, {"Order_Number": "A-2"}].
- Return fields (`return_fields`, list): Optional. Link names of fields whose saved values to return with the record ID.
- Skip workflows (`skip_workflow`, list): Optional. Workflows not to run for this change. Only the application's administrators and developers can skip them. One or more of: `form_workflow` (Form workflows), `schedules`, `all` (All workflows).

**Outputs**

- `count` (number): How many records succeeded.
- `failed` (list): The records that failed, with the reason.
- `failed_count` (number): How many records failed.
- `items` (list): The records that succeeded.

**Example output**

```json
{
  "count": 1,
  "failed": [],
  "failed_count": 0,
  "items": [
    {
      "data": {
        "ID": "3888833000000114027"
      },
      "id": "3888833000000114027",
      "message": "Data Added Successfully!"
    }
  ]
}
```

### Delete record

Delete one record through a report. This cannot be undone.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Record ID (`record_id`, text, required): The record's ID, from 'List records' or 'Add record'. An ID copied from the record's address works too.
- Skip form workflows (`skip_form_workflow`, true/false): Optional. Don't run the form's workflows for this deletion. Only the application's administrators and developers can skip them. Default: `false`.

**Outputs**: The deleted record.

- `deleted` (true/false): Always true.
- `id` (text): The deleted record's ID.
- `message` (text): Zoho Creator's confirmation.

**Example output**

```json
{
  "deleted": true,
  "id": "3888833000000114027",
  "message": "Record Deleted Successfully!"
}
```

### Delete records

Delete every record of a report that matches the criteria (up to 200 per run). This cannot be undone.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Criteria (`criteria`, text, required): Which records, written with field link names, e.g. Status == "Open" && Total > 250. Use ID != 0 for every record.
- Process the first 200 only (`process_until_limit`, true/false): Optional. When more than 200 records match, handle the first 200 and report more_records, instead of failing. Run the step again for the rest. Default: `false`.
- Skip form workflows (`skip_form_workflow`, true/false): Optional. Don't run the form's workflows for this deletion. Only the application's administrators and developers can skip them. Default: `false`.

**Outputs**

- `count` (number): How many records succeeded.
- `failed` (list): The records that failed, with the reason.
- `failed_count` (number): How many records failed.
- `items` (list): The records that succeeded.
- `more_records` (true/false): Whether more records match: run the step again to process them.

**Example output**

```json
{
  "count": 1,
  "failed": [],
  "failed_count": 0,
  "items": [
    {
      "data": {
        "ID": "3888833000000114027"
      },
      "id": "3888833000000114027",
      "message": "Record Deleted Successfully!"
    }
  ],
  "more_records": false
}
```

### Download file

Download the file in a record's file field, for use in later steps.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Record ID (`record_id`, text, required): The record's ID, from 'List records' or 'Add record'. An ID copied from the record's address works too.
- Form (`form`, text): Optional. The form the report shows, to pick the field from a list.
- Field (`field`, text, required): The File Upload, Image, Signature, Audio or Video field. Pick it after choosing the form, or type its link name.
- File path (`filepath`, text): Optional. Which file, when the field holds several: the filepath 'Upload file' returns, or the download address a record's field shows.

**Outputs**: The downloaded file.

- `content_type` (text): The file's media type.
- `document_ref` (text): The stored file: pass it to any step that takes a file.
- `field` (text): The field's link name.
- `file_name` (text): The file's name.
- `id` (text): The record ID.
- `size` (number): The file's size in bytes.

**Example output**

```json
{
  "content_type": "application/pdf",
  "document_ref": "doc_00000000000000000000000000000000",
  "field": "Attachment",
  "file_name": "invoice.pdf",
  "id": "3888833000000114027",
  "size": 1024
}
```

### Get record

Get one record through a report.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Record ID (`record_id`, text, required): The record's ID, from 'List records' or 'Add record'. An ID copied from the record's address works too.
- Fields to return (`field_config`, text): Optional. Which fields each record comes back with. One of: `quick_view` (The report's quick view (default)), `detail_view` (The report's detail view), `all` (All fields), `custom` (Only the fields listed).
- Only these fields (`fields`, list): Optional. Link names of the only fields to return.

**Outputs**: One record.

- `id` (text): The record ID.
- `record` (object): A record, keyed by field link name.

**Example output**

```json
{
  "id": "3888833000000114027",
  "record": {
    "ID": "3888833000000114027",
    "Order_Date": "02-Oct-2026",
    "Order_Number": "ORD-1001",
    "Status": "Open"
  }
}
```

### List a workspace's applications

List the applications in one owner's workspace.

**Inputs**

- Workspace owner (`workspace`, text, required): The workspace owner's name: the workspace_name 'List applications' returns.

**Outputs**

- `count` (number): How many applications were returned.
- `items` (list): The applications.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "application": "jason18/zylker-store",
      "application_name": "Zylker Store",
      "category": 1,
      "created_by": "jason18",
      "creation_date": "10-Jan-2026",
      "date_format": "dd-MMM-yyyy",
      "link_name": "zylker-store",
      "time_zone": "America/New_York",
      "workspace_name": "jason18"
    }
  ]
}
```

### List applications

List the applications you can reach, your own and those shared with you, with each one's owner and date format.

**Inputs**: None.

**Outputs**

- `count` (number): How many applications were returned.
- `items` (list): The applications.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "application": "jason18/zylker-store",
      "application_name": "Zylker Store",
      "category": 1,
      "created_by": "jason18",
      "creation_date": "10-Jan-2026",
      "date_format": "dd-MMM-yyyy",
      "link_name": "zylker-store",
      "time_zone": "America/New_York",
      "workspace_name": "jason18"
    }
  ]
}
```

### List fields

List a form's fields with their link names and types: the names record data and criteria use.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Form (`form`, text, required): The form. Pick it, or type its link name.

**Outputs**

- `count` (number): How many fields were returned.
- `items` (list): The fields.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "display_name": "Order Number",
      "link_name": "Order_Number",
      "mandatory": true,
      "max_char": 255,
      "type": 1,
      "type_name": "Single Line",
      "unique": true
    }
  ]
}
```

### List forms

List an application's forms. Records are added through a form.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.

**Outputs**

- `count` (number): How many forms were returned.
- `items` (list): The forms.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "display_name": "Order",
      "link_name": "Order",
      "type": 1,
      "type_name": "Form"
    }
  ]
}
```

### List pages

List an application's pages.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.

**Outputs**

- `count` (number): How many pages were returned.
- `items` (list): The pages.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "display_name": "Dashboard",
      "link_name": "Dashboard"
    }
  ]
}
```

### List records

List the records a report shows, optionally filtered by criteria, one page at a time.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Criteria (`criteria`, text): Optional. Only matching records, written with field link names, e.g. Status == "Open" && Total > 250.
- Fields to return (`field_config`, text): Optional. Which fields each record comes back with. One of: `quick_view` (The report's quick view (default)), `detail_view` (The report's detail view), `all` (All fields), `custom` (Only the fields listed).
- Only these fields (`fields`, list): Optional. Link names of the only fields to return.
- Page size (`max_records`, text): Optional. How many records per page; 200 by default. One of: `200`, `500`, `1000`.
- Cursor (`cursor`, text): Optional. The next_cursor of the previous page, to fetch the page after it.

**Outputs**

- `count` (number): How many records are on this page.
- `has_more` (true/false): Whether another page is available.
- `items` (list): The records.
- `next_cursor` (text): Pass as 'Cursor' to fetch the next page; empty on the last.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "ID": "3888833000000114027",
      "Order_Date": "02-Oct-2026",
      "Order_Number": "ORD-1001",
      "Status": "Open"
    }
  ],
  "next_cursor": null
}
```

### List reports

List an application's reports. Records are read, updated and deleted through a report.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.

**Outputs**

- `count` (number): How many reports were returned.
- `items` (list): The reports.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "display_name": "All Orders",
      "link_name": "All_Orders",
      "type": 1,
      "type_name": "List"
    }
  ]
}
```

### List sections

List the sections of an application's menu with the forms, reports and pages in each.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.

**Outputs**

- `count` (number): How many sections were returned.
- `items` (list): The sections.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "components": [
        {
          "display_name": "Order",
          "link_name": "Order",
          "type": 1,
          "type_name": "Form"
        }
      ],
      "display_name": "Orders",
      "link_name": "Orders"
    }
  ]
}
```

### Update record

Change fields of one record through a report. Fields left blank keep their values.

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Record ID (`record_id`, text, required): The record's ID, from 'List records' or 'Add record'. An ID copied from the record's address works too.
- Form (`form`, text, required): The form the report shows. Its fields are listed in 'Data'.
- Data (`data`, object, required): The value for each field to set. Fields left blank are not sent.
- Return fields (`return_fields`, list): Optional. Link names of fields whose saved values to return with the record ID.
- Skip workflows (`skip_workflow`, list): Optional. Workflows not to run for this change. Only the application's administrators and developers can skip them. One or more of: `form_workflow` (Form workflows), `schedules`, `all` (All workflows).

**Outputs**: A record that was written.

- `data` (object): The ID, plus any fields asked for in 'Return fields'.
- `id` (text): The record ID.
- `message` (text): Zoho Creator's confirmation.
- `tasks` (object): What the form's workflow asked to happen next, if anything.

**Example output**

```json
{
  "data": {
    "ID": "3888833000000114027"
  },
  "id": "3888833000000114027",
  "message": "Data Updated Successfully!"
}
```

### Update records

Set the same field values on every record of a report that matches the criteria (up to 200 per run).

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Criteria (`criteria`, text, required): Which records, written with field link names, e.g. Status == "Open" && Total > 250. Use ID != 0 for every record.
- Form (`form`, text, required): The form the report shows. Its fields are listed in 'Data'.
- Data (`data`, object, required): The value for each field to set. Fields left blank are not sent.
- Process the first 200 only (`process_until_limit`, true/false): Optional. When more than 200 records match, handle the first 200 and report more_records, instead of failing. Run the step again for the rest. Default: `false`.
- Return fields (`return_fields`, list): Optional. Link names of fields whose saved values to return with the record ID.
- Skip workflows (`skip_workflow`, list): Optional. Workflows not to run for this change. Only the application's administrators and developers can skip them. One or more of: `form_workflow` (Form workflows), `schedules`, `all` (All workflows).

**Outputs**

- `count` (number): How many records succeeded.
- `failed` (list): The records that failed, with the reason.
- `failed_count` (number): How many records failed.
- `items` (list): The records that succeeded.
- `more_records` (true/false): Whether more records match: run the step again to process them.

**Example output**

```json
{
  "count": 1,
  "failed": [],
  "failed_count": 0,
  "items": [
    {
      "data": {
        "ID": "3888833000000114027"
      },
      "id": "3888833000000114027",
      "message": "Data Updated Successfully!"
    }
  ],
  "more_records": false
}
```

### Upload file

Upload a file into a record's File Upload, Image, Signature, Audio or Video field (up to 50 MB; images 10 MB).

**Inputs**

- Application (`application`, text, required): The application. Pick it, or type owner/link_name (for example jason18/zylker-store) or paste its address.
- Report (`report`, text, required): The report the records are read through. Pick it, or type its link name.
- Record ID (`record_id`, text, required): The record's ID, from 'List records' or 'Add record'. An ID copied from the record's address works too.
- Form (`form`, text): Optional. The form the report shows, to pick the field from a list.
- Field (`field`, text, required): The File Upload, Image, Signature, Audio or Video field. Pick it after choosing the form, or type its link name.
- File (`file`, text): The file to upload. Use this or 'Text content'.
- Text content (`content`, text): Optional. Text to upload as the file, instead of a file.
- File name (`file_name`, text): The file's name, with its extension. Needed with 'Text content'; defaults to the uploaded file's name.
- Skip workflows (`skip_workflow`, list): Optional. Workflows not to run for this change. Only the application's administrators and developers can skip them. One or more of: `form_workflow` (Form workflows), `schedules`, `all` (All workflows).

**Outputs**: The uploaded file.

- `field` (text): The field's link name.
- `file_name` (text): The file's name.
- `filepath` (text): Where Zoho Creator stored it: pass as 'File path' to download it.
- `id` (text): The record ID.
- `message` (text): Zoho Creator's confirmation.

**Example output**

```json
{
  "field": "Attachment",
  "file_name": "invoice.pdf",
  "filepath": "1696334410445_invoice.pdf",
  "id": "3888833000000114027",
  "message": "File uploaded successfully !"
}
```
