Reference · Tools

QuickBase

Manage records, fields, files, and reports in QuickBase applications via the RESTful API.

Action (binary) Data & Storage v1 Binary data

The QuickBase node manages records, fields, files and reports inside QuickBase applications, with binary file upload and download on record fields. A typical build is creating a record from an inbound request and attaching the supporting document to it.

Node type
Action (binary)
Parameters
42
Outputs
Output, Error
Credentials
QuickBase API

QuickBase

Manage records, fields, files, and reports in QuickBase

Overview

The QuickBase tool provides comprehensive access to the QuickBase RESTful API. It supports CRUD operations on records (including batch create, update, and upsert), field listing, file attachment download/upload/delete, and report retrieval/execution. Records support field name-to-ID resolution and simplified output. Pagination is offset-based (skip/top) for record queries and report runs.

Category: Data & Storage
Tool Name: quickbase
Version: 1

Appearance: Icon: lucide-Database | Color: #BE1313

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires QuickBase API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Fieldfield
Filefile
Recordrecord
Reportreport

Operations

Each resource has its own operation list — pick the resource first, then the operation.

ResourceOperationValueDescription
FieldGet ManygetAllGet many fields from a table
FileDeletedeleteDelete a file attachment
FileDownloaddownloadDownload a file attachment
FileUploaduploadUpload a file to a record field
RecordCreatecreateCreate a record
RecordCreate or UpdateupsertCreate a new record, or update if it already exists (upsert)
RecordDeletedeleteDelete records matching a filter
RecordGet ManygetAllQuery records from a table
RecordUpdateupdateUpdate records in a table
ReportGetgetGet a report definition
ReportRunrunRun a report and return results

Parameters

Field: Get Many

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Return AllbooleanNofalseWhether to return all fields or limit the results.
LimitnumberNo50Max number of fields to return. Accepts 1–100. (shown when Return All is false)
OptionscollectionNo{}Extra options for the field listing.
— Include Field PermissionsbooleanNofalseWhether to include custom field permissions in the response.

File: Delete

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Record IDstringYesThe unique identifier of the record. Supports expressions.
Field IDstringYesThe unique identifier of the file attachment field. Supports expressions.
Version NumbernumberYes1The file attachment version number.

File: Download

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Record IDstringYesThe unique identifier of the record. Supports expressions.
Field IDstringYesThe unique identifier of the file attachment field. Supports expressions.
Version NumbernumberYes1The file attachment version number.
Binary PropertystringYesdataName of the binary property to read from (upload) or write to (download) on the item. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.

File: Upload

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Record IDstringYesThe unique identifier of the record. Supports expressions.
Field IDstringYesThe unique identifier of the file attachment field. Supports expressions.
Binary PropertystringYesdataName of the binary property to read from (upload) or write to (download) on the item. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.

Record: Create

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
ColumnsstringYesComma-separated list of field names (or IDs if Use Field IDs is true) to include from input data.
SimplifybooleanNotrueWhether to return a simplified response (strip {value:…} wrappers).
OptionscollectionNo{}Extra options for the create call.
— Fields to ReturnstringNoComma-separated list of field IDs to return in response. Default returns Record ID (field 3). Provide IDs as comma-separated numbers.
— Use Field IDsbooleanNofalseWhether to use Field IDs instead of Field Names in the Columns parameter.

Record: Create or Update

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
ColumnsstringYesComma-separated list of field names (or IDs if Use Field IDs is true) to include from input data.
Update KeystringYesThe field name in the input data that contains the merge value. Must exist in every input item.
Merge Field IDstringYesThe field ID of a unique (non-primary-key) field in QuickBase to match on for upsert. Obtain from Field: Get All.
SimplifybooleanNotrueWhether to return a simplified response (strip {value:…} wrappers).
OptionscollectionNo{}Extra options for the upsert call.
— Fields to ReturnstringNoComma-separated list of field IDs to return in response. Default returns Record ID (field 3).
— Use Field IDsbooleanNofalseWhether to use Field IDs instead of Field Names in the Columns parameter.

Record: Delete

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
WherestringYesQuickBase query language filter to select records to delete. Example: {3.GT.0} deletes all records where Record ID > 0. Supports expressions.

Record: Get Many

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Return AllbooleanNofalseWhether to return all records or limit the results.
LimitnumberNo50Max number of records to return. Accepts 1–100. (shown when Return All is false)
OptionscollectionNo{}Query options for the record search.
— Select FieldsstringNoComma-separated list of field IDs to include in results. Leave empty for default columns.
— Sort ByjsonNo[]JSON array of sort specifications. Each entry: { “fieldId”: <id>, “order”: “ASC”|“DESC” }. Example: [{“fieldId”: 6, “order”: “ASC”}]
— WherestringNoQuickBase query language filter. Example: {6.EX.‘value’}

Record: Update

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
ColumnsstringYesComma-separated list of field names (or IDs if Use Field IDs is true) to include from input data.
Update KeystringYesThe field name in the input data used as the update key. This field must exist in every input item.
SimplifybooleanNotrueWhether to return a simplified response (strip {value:…} wrappers and resolve field IDs to labels).
OptionscollectionNo{}Extra options for the update call.
— Fields to ReturnstringNoComma-separated list of field IDs to return in response.
— Use Field IDsbooleanNofalseWhether to use Field IDs instead of Field Names in the Columns parameter.

Report: Get

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Report IDstringYesThe identifier of the report, unique to the table. Supports expressions.

Report: Run

ParameterTypeRequiredDefaultDescription
Table IDstringYesThe unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}.
Report IDstringYesThe identifier of the report, unique to the table. Supports expressions.
Return AllbooleanNotrueWhether to return all report results or limit them.
LimitnumberNo100Max number of records to return from the report. Accepts 1–100. (shown when Return All is false)

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently. Accepts 1–100.

Output Data

The result lands directly on the output item’s JSON — there is no wrapper property. Binary data from the input item is forwarded on every operation. How many output items you get depends on the operation: the listing operations fan out one output item per returned row, so a Record: Get Many that finds 200 records produces 200 items from a single input item, while the single-target operations produce exactly one item per input item.

Record: Create, Create or Update and Update are batched — every input item is sent to QuickBase in one call, and one output item is produced per input item carrying that item’s returned record.

Resource: OperationOutput items per input itemItem JSON
Field: Get ManyOne per fieldThe field definition as QuickBase returns it (id, label, fieldType, and the rest of the field’s properties). When the table has no fields, a single item with fields: []
File: DeleteOneThe input item JSON merged with the delete response; when the service returns no body, success: true is added instead
File: DownloadOneThe input item JSON plus tableId, recordId, fieldId, versionNumber, fileName and fileSize. The file itself is written to the binary property named by Binary Property, alongside any binary already on the item
File: UploadOneThe input item JSON plus tableId, recordId, fieldId, uploadResult, fileName and fileSize
Record: CreateOneThe created record. With Simplify on, {value: …} wrappers are stripped
Record: Create or UpdateOneThe created or updated record. With Simplify on, {value: …} wrappers are stripped
Record: DeleteOneThe input item JSON merged with the delete response
Record: Get ManyOne per recordThe record, with field IDs resolved to their labels and {value: …} wrappers unwrapped. When nothing matches, a single item with records: []
Record: UpdateOneThe updated record. With Simplify on, {value: …} wrappers are stripped and field IDs resolved to labels
Report: GetOneThe report definition as QuickBase returns it
Report: RunOne per recordThe record, with field IDs resolved to their labels and {value: …} wrappers unwrapped. When the report returns nothing, a single item with records: []

For the record and report operations the input item’s JSON does not pass through — the returned record replaces it. The file operations and Record: Delete keep the input JSON and add their fields to it.

Reference the result downstream by expression, e.g. {{ $json.fileName }} after a download, or {{ $json["Record ID#"] }} after a query.

Usage Examples

  • Create records in a QuickBase table
  • Download file attachment from a QuickBase record
  • Upload a file to a QuickBase record field
  • Query all records from a table with pagination
  • Run a QuickBase report and return results
  • Update records using field name mapping
  • Upsert records with merge field matching

Example Configuration

Get every field definition in a table:

{
  "type": "quickbase",
  "parameters": {
    "resource": "field",
    "operation": "getAll",
    "tableId": "bqxyz1234",
    "returnAll": true,
    "options": {
      "includeFieldPerms": false
    }
  }
}

Get the first 50 fields, including their permissions:

{
  "type": "quickbase",
  "parameters": {
    "resource": "field",
    "operation": "getAll",
    "tableId": "bqxyz1234",
    "returnAll": false,
    "limit": 50,
    "options": {
      "includeFieldPerms": true
    }
  }
}

Upload the file on the item’s data property to a record’s attachment field:

{
  "type": "quickbase",
  "parameters": {
    "resource": "file",
    "operation": "upload",
    "tableId": "bqxyz1234",
    "recordId": "123",
    "fieldId": "8",
    "binaryPropertyName": "data"
  }
}

Download version 1 of an attachment onto the item’s data property:

{
  "type": "quickbase",
  "parameters": {
    "resource": "file",
    "operation": "download",
    "tableId": "bqxyz1234",
    "recordId": "123",
    "fieldId": "8",
    "versionNumber": 1,
    "binaryPropertyName": "data"
  }
}

Delete a specific attachment version:

{
  "type": "quickbase",
  "parameters": {
    "resource": "file",
    "operation": "delete",
    "tableId": "bqxyz1234",
    "recordId": "123",
    "fieldId": "8",
    "versionNumber": 1
  }
}

Create records from the incoming items, mapping three input properties to columns:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "create",
    "tableId": "bqxyz1234",
    "columns": "Name,Email,Phone",
    "simple": true,
    "options": {
      "fields": "3,6,7",
      "useFieldIDs": false
    }
  }
}

Query up to 100 active records, returning selected columns only:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "getAll",
    "tableId": "bqxyz1234",
    "returnAll": false,
    "limit": 100,
    "options": {
      "select": "3,6,7,8",
      "sortByUi": "[]",
      "where": "{6.EX.'Active'}"
    }
  }
}

Update existing records, matching each item on its Record ID:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "update",
    "tableId": "bqxyz1234",
    "columns": "Record ID#,Name,Status",
    "updateKey": "Record ID#",
    "simple": false,
    "options": {
      "fields": "3,6,7",
      "useFieldIDs": false
    }
  }
}

Upsert records, matching on a unique Email field:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "upsert",
    "tableId": "bqxyz1234",
    "columns": "Email,Name,Phone",
    "updateKey": "Email",
    "mergeFieldId": "6",
    "simple": true,
    "options": {
      "fields": "3,6,7,8",
      "useFieldIDs": false
    }
  }
}

Delete every record whose field 7 equals “Inactive”:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "delete",
    "tableId": "bqxyz1234",
    "where": "{7.EX.'Inactive'}"
  }
}

Read a report’s definition without running it:

{
  "type": "quickbase",
  "parameters": {
    "resource": "report",
    "operation": "get",
    "tableId": "bqxyz1234",
    "reportId": "5"
  }
}

Run a report and cap the result set:

{
  "type": "quickbase",
  "parameters": {
    "resource": "report",
    "operation": "run",
    "tableId": "bqxyz1234",
    "reportId": "5",
    "returnAll": false,
    "limit": 100
  }
}

Bulk-import records from an upstream node, throttled to five concurrent items:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "create",
    "tableId": "bqxyz1234",
    "columns": "Name,Email,Department,StartDate",
    "simple": true,
    "maxConcurrency": 5,
    "options": {
      "useFieldIDs": false
    }
  }
}

Keep an external system in sync by upserting on a stable external ID:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "upsert",
    "tableId": "bqxyz1234",
    "columns": "ExternalID,Name,Status,LastModified",
    "updateKey": "ExternalID",
    "mergeFieldId": "10",
    "simple": true,
    "options": {
      "useFieldIDs": false
    }
  }
}

Clean up records older than a cut-off date:

{
  "type": "quickbase",
  "parameters": {
    "resource": "record",
    "operation": "delete",
    "tableId": "bqxyz1234",
    "where": "{8.BF.'2023-01-01'}"
  }
}

Discover a table’s schema before configuring a record operation:

{
  "type": "quickbase",
  "parameters": {
    "resource": "field",
    "operation": "getAll",
    "tableId": "bqxyz1234",
    "returnAll": true,
    "options": {
      "includeFieldPerms": true
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage records, fields, files, and reports in QuickBase applications with binary file download/upload support.

Key Relationships

  • The operation parameter determines which other parameters are available and required
  • The returnAll parameter controls whether limit is used for paginated operations
  • The options collection provides operation-specific configuration
  • File operations require recordId and fieldId to identify the specific attachment
  • Record operations support both field names and IDs based on the useFieldIDs option
  • The where parameter uses QuickBase’s query language syntax for filtering

Frequently asked questions

What do file operations need?

Both a record ID and a field ID, since a file in QuickBase lives in a specific field on a specific record rather than standing alone.

Why do the available parameters keep changing?

The operation parameter determines which other parameters are available and required, so choose the operation first and configure what it exposes.

When does the limit apply?

On paginated operations, and only when Return All is off — with Return All on there is nothing to limit.

Which credential does it need?

A QuickBase API credential for the application you are working with.

Build with the QuickBase node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need QuickBase API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.