# Knack

No-code database and business application platform for building custom web apps without coding.

- **Category:** databases
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 10
- **Triggers:** 0
- **Slug:** `KNACK`
- **Version:** 20260307_00

## Tools

### Create object record

**Slug:** `KNACK_CREATE_OBJECT_RECORD`

Tool to create a new record in a specific Knack object. Use when you need to add new data to a Knack database object. Requires object-based API key authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | object | Yes | Dictionary of field keys and their values. Keys must match your Knack object's field keys (e.g., 'field_1', 'field_2'). Values can be strings, numbers, objects, or arrays depending on the field type. For name fields, use {'first': 'John', 'last': 'Doe'}. For email fields, use {'email': 'user@example.com'}. |
| `object_key` | string | Yes | The object key identifier (e.g., 'object_1', 'object_2'). This identifies which Knack object to create the record in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create View Record

**Slug:** `KNACK_CREATE_VIEW_RECORD`

Tool to create a new record through a form view in Knack. Use when you need to add a record to a Knack object using a form view interface. Only fields that exist in the form will be used, and any record rules configured on the form will be triggered.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view_key` | string | Yes | The view key for the form view through which to create the record (e.g., 'view_12'). |
| `scene_key` | string | Yes | The scene/page key where the form view is located (e.g., 'scene_13'). |
| `record_data` | object | Yes | JSON object containing field keys and their values. Field keys must match the fields defined in the form view (e.g., {'field_1': {'first': 'John', 'last': 'Doe'}, 'field_2': 'john@example.com'}). Only fields that exist in the form will be used. |
| `authorization` | string | No | User token for login-protected pages. Only required if the form view requires authentication. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Object Record

**Slug:** `KNACK_DELETE_OBJECT_RECORD`

Tool to delete a single record from a specific Knack object by its ID. Use when you need to permanently remove a record from an object. This action is permanent and cannot be undone. Requires API key authentication (X-Knack-Application-Id and X-Knack-REST-API-KEY headers).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `record_id` | string | Yes | The unique ID of the record to delete. This operation is permanent and cannot be undone. |
| `object_key` | string | Yes | The object key (e.g., object_1, object_2). This identifies which object the record belongs to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete View Record

**Slug:** `KNACK_DELETE_VIEW_RECORD`

Tool to delete a record through a view that contains a delete link. Works with tables, lists, searches, calendars, and details views. This operation is permanent and cannot be undone. Use only after confirming the correct scene_key, view_key, and record_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view_key` | string | Yes | The view key for a view with delete link (e.g., view_2). Must be a view that contains delete functionality. |
| `record_id` | string | Yes | The record ID to delete. This operation is permanent and cannot be undone. |
| `scene_key` | string | Yes | The scene/page key (e.g., scene_10). Identifies the page containing the view. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Object Record

**Slug:** `KNACK_GET_OBJECT_RECORD`

Tool to retrieve a single record by its ID from a specific Knack object. Returns the complete record with all field values in both formatted and raw formats. Use this for object-based access which requires API key authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `record_id` | string | Yes | The unique record ID to retrieve (e.g., '58643557d1ea9432222f3cbb'). This is a 24-character hexadecimal string. |
| `object_key` | string | Yes | The object key identifier (e.g., 'object_1', 'object_2'). This can be found in your Knack application's API settings or builder interface. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Object Records

**Slug:** `KNACK_LIST_OBJECT_RECORDS`

Tool to retrieve multiple records from a specific Knack object (table). Returns up to 1000 records per page with pagination support. Use this for object-based access which requires API key authentication and provides full access to all fields and records. Supports filtering by field values and sorting by field keys.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (default 1). Use this to navigate through multiple pages of results. |
| `filters` | string | No | URL-encoded JSON filter object. Must contain 'match' (and/or) and 'rules' array. Example: {"match":"and","rules":[{"field":"field_1","operator":"is","value":"test"}]} |
| `object_key` | string | Yes | The object key identifier (e.g., object_1, object_2). This identifies which Knack object (table) to retrieve records from. |
| `sort_field` | string | No | Field key to sort results by (e.g., field_25). Must be a valid field key from the object. |
| `sort_order` | string ("asc" | "desc") | No | Sort order enumeration for records. |
| `rows_per_page` | integer | No | Number of records per page (default 25, max 1000). Controls how many records are returned in a single request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List View Records

**Slug:** `KNACK_LIST_VIEW_RECORDS`

Tool to retrieve multiple records from a specific Knack view (tables, lists, searches, calendars). Use when you need to fetch data from a view with pagination support. Returns only fields included in the view configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Defaults to 1 if not specified. |
| `view_key` | string | Yes | The view key (e.g., view_1, view_11). This identifies the specific view (table, list, search, or calendar) to retrieve records from. |
| `scene_key` | string | Yes | The scene/page key (e.g., scene_1). This identifies the page containing the view. |
| `rows_per_page` | integer | No | Number of records per page. Maximum is 1000. Defaults to 25 if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update object record

**Slug:** `KNACK_UPDATE_OBJECT_RECORD`

Tool to update an existing record in a specific Knack object. Use when you need to modify field values in an existing record. Only fields provided in the request will be updated; all other fields remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | object | Yes | Dictionary of field keys and their values to update. Only fields included in this dictionary will be modified; all other fields remain unchanged. Keys must match your Knack object's field keys (e.g., 'field_1', 'field_4'). Values can be strings, numbers, objects, or arrays depending on the field type. |
| `record_id` | string | Yes | The unique record ID to update (e.g., '67e1e50c2fa13b511d7770aa'). This is a 24-character hexadecimal string. |
| `object_key` | string | Yes | The object key identifier (e.g., 'object_1', 'object_2'). This identifies which Knack object contains the record to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File

**Slug:** `KNACK_UPLOAD_FILE`

Tool to upload a file to a Knack application. This is step 1 of a two-step process - after uploading, use the returned file ID when creating or updating a record with a file field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `files` | object | Yes | The file to upload to Knack. |
| `application_id` | string | Yes | Your Knack application ID. This identifies which application to upload the file to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Image

**Slug:** `KNACK_UPLOAD_IMAGE`

Tool to upload an image to a Knack application. This is the first step in a two-step process - after uploading, use the returned file ID when creating or updating a record with an image field. Use when you need to attach images to Knack records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `files` | object | Yes | The image file to upload. |
| `application_id` | string | Yes | Your Knack application ID. This identifies which application to upload the image to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
