n8n AppSheet Integration
A comprehensive n8n community node for interacting with the AppSheet API, supporting CRUD operations, custom action invocation, conditional record checks, and bulk upsert capabilities.
What This Skill Does
This skill provides n8n workflow integration with AppSheet, Google's no-code app platform. It enables automated data operations including:
Creating, reading, updating, and deleting records in AppSheet tablesInvoking custom AppSheet actionsChecking record existence with flexible conditionsBulk upsert operations with batch processing and dry-run modeAdvanced filtering using AppSheet selector expressionsKey Features
**Modern UI:** Records key/value editors for all operations**Rich Options:** Locale, Location, Timezone, User Settings, Run as User Email, Action Properties**Conditional Logic:** If Exists operation with multiple operators and type handling**Bulk Operations:** Upsert Records with configurable batch size and dry-run mode**Flexible Queries:** Support for AppSheet selector expressions (FILTER, etc.)Installation Instructions
For n8n Cloud Users
1. Log in to your n8n.io account at [n8n.io](https://n8n.io)
2. Navigate to Profile → Settings icon in the n8n editor
3. Select **Community Nodes** from the Settings menu
4. Search for `n8n-nodes-vitaliyustymenko-appsheet`
5. Click **Install** when the package appears
6. Add the AppSheet node to your workflow from the node palette
For Self-Hosted n8n
```bash
Install via npm in your n8n installation directory
npm install n8n-nodes-vitaliyustymenko-appsheet
```
Restart your n8n instance after installation.
Usage Examples
Example 1: Find Record by Key
**Operation:** Find Record
**Records Configuration:**
Key: `event_id`Value: `1793a645b9c5659ee10ebf578e388bb7`Example 2: Find Using AppSheet Selector
**Operation:** Find Record
**Selector Expression:**
```
FILTER(hibob_webhooks_events, [event_id] = "1793a645b9c5659ee10ebf578e388bb7")
```
Example 3: Conditional Record Check
**Operation:** If Exists
**Conditions:**
Field: `event_id`Operator: `Contains`Value Type: `String`Value: `1793a6`**Returns:** `exists` (boolean), `count` (number), `records` (array)
Example 4: Bulk Upsert Records
**Operation:** Upsert Records
**Records (2 items):**
Record 1:
Email: `[email protected]`Name: `John`Record 2:
Email: `[email protected]`Name: `Jane`**Key Fields:** `Email`
**Options:**
Batch Size: `100`Dry Run: `true` (test mode, no actual writes)Example 5: Create New Record
**Operation:** Create Record
**Records:**
Key: `Name`Value: `Alice Smith`Key: `Department`Value: `Engineering`Key: `Email`Value: `[email protected]`Example 6: Update Existing Record
**Operation:** Update Record
**Records (Key Fields + Updates):**
Key: `EmployeeID` (key field)Value: `EMP-001`Key: `Status` (field to update)Value: `Active`Key: `LastModified` (field to update)Value: `2026-02-02`Example 7: Invoke Custom Action
**Operation:** Invoke Action
**Configuration:**
Action Name: `SendNotification`Records: Target row key fields**Action Properties:**
Key: `NotificationType`Value: `Email`Key: `Message`Value: `Your report is ready`Operations Reference
Create Record
Add one or more new records to an AppSheet table. Provide field key/value pairs for each record.
Read Records
Retrieve records using either:
Key fields (specific record lookup)Selector expression (complex filtering)Update Record
Update existing records by specifying key fields and new field values.
Delete Record
Delete records by providing key field values.
Invoke Action
Execute custom AppSheet actions on one or more rows. Supports action properties for parameterized actions.
If Exists
Check if records exist based on conditions. Returns:
`exists`: boolean indicating if any matches found`count`: number of matching records`records`: array of matching record dataSupports operators: Equals, Contains, Starts With, Ends With, Greater Than, Less Than, etc.
Upsert Records (Bulk)
Create new records or update existing ones in batches:
Specify key fields to determine update vs createConfigure batch size for large datasetsUse dry-run mode to preview changes without writingConfiguration Requirements
AppSheet API Credentials
You'll need to configure n8n credentials for AppSheet:
1. **Application ID:** Your AppSheet app ID
2. **API Key:** AppSheet API key (generate in AppSheet account settings)
3. **Table Name:** Target table for operations
Optional Settings
**Locale:** e.g., `en-US`**Location:** User location coordinates**Timezone:** e.g., `America/New_York`**User Settings:** Custom user preferences**Run as User Email:** Impersonate a specific user for auditingImportant Notes
All operations require proper AppSheet API credentials configured in n8nKey fields must match the primary key or unique identifier fields defined in your AppSheet tableSelector expressions use AppSheet formula syntax (see AppSheet documentation)Bulk operations process records in batches to respect API rate limitsDry-run mode is recommended for testing bulk upsert operations before committing changesThe node returns structured data that can be used in downstream n8n workflow nodesError Handling
The node provides clear error messages for:
Invalid credentialsMissing required fieldsAPI rate limit exceededInvalid selector expressionsRecord not foundAlways check the execution logs in n8n for detailed error information.
Resources
**Original fork:** [rifadm817/n8n-nodes-rifad-appsheet](https://github.com/rifadm817/n8n-nodes-rifad-appsheet)**AppSheet API Documentation:** [AppSheet API Reference](https://support.google.com/appsheet/answer/10105769)**n8n Documentation:** [n8n.io/docs](https://docs.n8n.io)