Reference · Tools
QuickBase
Manage records, fields, files, and reports in QuickBase applications via the RESTful API.
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
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires QuickBase API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Field | field |
| File | file |
| Record | record |
| Report | report |
Operations
Each resource has its own operation list — pick the resource first, then the operation.
| Resource | Operation | Value | Description |
|---|---|---|---|
| Field | Get Many | getAll | Get many fields from a table |
| File | Delete | delete | Delete a file attachment |
| File | Download | download | Download a file attachment |
| File | Upload | upload | Upload a file to a record field |
| Record | Create | create | Create a record |
| Record | Create or Update | upsert | Create a new record, or update if it already exists (upsert) |
| Record | Delete | delete | Delete records matching a filter |
| Record | Get Many | getAll | Query records from a table |
| Record | Update | update | Update records in a table |
| Report | Get | get | Get a report definition |
| Report | Run | run | Run a report and return results |
Parameters
Field: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Return All | boolean | No | false | Whether to return all fields or limit the results. |
| Limit | number | No | 50 | Max number of fields to return. Accepts 1–100. (shown when Return All is false) |
| Options | collection | No | {} | Extra options for the field listing. |
| — Include Field Permissions | boolean | No | false | Whether to include custom field permissions in the response. |
File: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Record ID | string | Yes | — | The unique identifier of the record. Supports expressions. |
| Field ID | string | Yes | — | The unique identifier of the file attachment field. Supports expressions. |
| Version Number | number | Yes | 1 | The file attachment version number. |
File: Download
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Record ID | string | Yes | — | The unique identifier of the record. Supports expressions. |
| Field ID | string | Yes | — | The unique identifier of the file attachment field. Supports expressions. |
| Version Number | number | Yes | 1 | The file attachment version number. |
| Binary Property | string | Yes | data | Name 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Record ID | string | Yes | — | The unique identifier of the record. Supports expressions. |
| Field ID | string | Yes | — | The unique identifier of the file attachment field. Supports expressions. |
| Binary Property | string | Yes | data | Name 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Columns | string | Yes | — | Comma-separated list of field names (or IDs if Use Field IDs is true) to include from input data. |
| Simplify | boolean | No | true | Whether to return a simplified response (strip {value:…} wrappers). |
| Options | collection | No | {} | Extra options for the create call. |
| — Fields to Return | string | No | — | Comma-separated list of field IDs to return in response. Default returns Record ID (field 3). Provide IDs as comma-separated numbers. |
| — Use Field IDs | boolean | No | false | Whether to use Field IDs instead of Field Names in the Columns parameter. |
Record: Create or Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Columns | string | Yes | — | Comma-separated list of field names (or IDs if Use Field IDs is true) to include from input data. |
| Update Key | string | Yes | — | The field name in the input data that contains the merge value. Must exist in every input item. |
| Merge Field ID | string | Yes | — | The field ID of a unique (non-primary-key) field in QuickBase to match on for upsert. Obtain from Field: Get All. |
| Simplify | boolean | No | true | Whether to return a simplified response (strip {value:…} wrappers). |
| Options | collection | No | {} | Extra options for the upsert call. |
| — Fields to Return | string | No | — | Comma-separated list of field IDs to return in response. Default returns Record ID (field 3). |
| — Use Field IDs | boolean | No | false | Whether to use Field IDs instead of Field Names in the Columns parameter. |
Record: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Where | string | Yes | — | QuickBase query language filter to select records to delete. Example: {3.GT.0} deletes all records where Record ID > 0. Supports expressions. |
Record: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Return All | boolean | No | false | Whether to return all records or limit the results. |
| Limit | number | No | 50 | Max number of records to return. Accepts 1–100. (shown when Return All is false) |
| Options | collection | No | {} | Query options for the record search. |
| — Select Fields | string | No | — | Comma-separated list of field IDs to include in results. Leave empty for default columns. |
| — Sort By | json | No | [] | JSON array of sort specifications. Each entry: { “fieldId”: <id>, “order”: “ASC”|“DESC” }. Example: [{“fieldId”: 6, “order”: “ASC”}] |
| — Where | string | No | — | QuickBase query language filter. Example: {6.EX.‘value’} |
Record: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Columns | string | Yes | — | Comma-separated list of field names (or IDs if Use Field IDs is true) to include from input data. |
| Update Key | string | Yes | — | The field name in the input data used as the update key. This field must exist in every input item. |
| Simplify | boolean | No | true | Whether to return a simplified response (strip {value:…} wrappers and resolve field IDs to labels). |
| Options | collection | No | {} | Extra options for the update call. |
| — Fields to Return | string | No | — | Comma-separated list of field IDs to return in response. |
| — Use Field IDs | boolean | No | false | Whether to use Field IDs instead of Field Names in the Columns parameter. |
Report: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Report ID | string | Yes | — | The identifier of the report, unique to the table. Supports expressions. |
Report: Run
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Table ID | string | Yes | — | The unique identifier of the QuickBase table. Supports expressions like {{ $json.tableId }}. |
| Report ID | string | Yes | — | The identifier of the report, unique to the table. Supports expressions. |
| Return All | boolean | No | true | Whether to return all report results or limit them. |
| Limit | number | No | 100 | Max number of records to return from the report. Accepts 1–100. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum 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: Operation | Output items per input item | Item JSON |
|---|---|---|
| Field: Get Many | One per field | The 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: Delete | One | The input item JSON merged with the delete response; when the service returns no body, success: true is added instead |
| File: Download | One | The 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: Upload | One | The input item JSON plus tableId, recordId, fieldId, uploadResult, fileName and fileSize |
| Record: Create | One | The created record. With Simplify on, {value: …} wrappers are stripped |
| Record: Create or Update | One | The created or updated record. With Simplify on, {value: …} wrappers are stripped |
| Record: Delete | One | The input item JSON merged with the delete response |
| Record: Get Many | One per record | The record, with field IDs resolved to their labels and {value: …} wrappers unwrapped. When nothing matches, a single item with records: [] |
| Record: Update | One | The updated record. With Simplify on, {value: …} wrappers are stripped and field IDs resolved to labels |
| Report: Get | One | The report definition as QuickBase returns it |
| Report: Run | One per record | The 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
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes 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
operationparameter determines which other parameters are available and required - The
returnAllparameter controls whetherlimitis used for paginated operations - The
optionscollection provides operation-specific configuration - File operations require
recordIdandfieldIdto identify the specific attachment - Record operations support both field names and IDs based on the
useFieldIDsoption - The
whereparameter 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 BusyBotLast updated . Spotted something wrong? Tell us.