skills/data-connector/SKILL.md
Connect to Google Sheets, Airtable, and CSV files for data management
npx skillsauth add ticruz38/skills skills/data-connectorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Connect to Google Sheets, Airtable, and CSV files for unified data management.
npm install
npm run build
Requires google-oauth skill to be connected with Sheets scopes:
google-oauth connect sheets
Set environment variable:
export AIRTABLE_API_KEY=your_api_key
Or provide key per connection during setup.
# Check health
npm run status
# List connections
npm run cli -- list
# Add connections
npm run cli -- add my-sheet google-sheets
npm run cli -- add my-base airtable
npm run cli -- add local-data csv
# Sync data to cache
npm run cli -- sync
# Read data
npm run cli -- read 1
# Import/export CSV
npm run cli -- import data.csv my-sheet
npm run cli -- export 1 output.csv
import { DataConnectorSkill } from '@openclaw/data-connector';
const skill = new DataConnectorSkill();
// Create connection
const conn = await skill.createConnection('sales-data', 'google-sheets', {
spreadsheetId: '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms',
sheetName: 'Sheet1',
range: 'A1:Z1000',
hasHeaderRow: true
});
// Read data
const data = await skill.readFromSource(conn);
// Sync to cache
await skill.cacheData(conn.id!, data);
// Close
await skill.close();
spreadsheetId: From URL (e.g., 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms)sheetName: Tab name (default: Sheet1)range: A1 notation range (default: A1:Z1000)hasHeaderRow: First row contains headers (default: true)baseId: From API documentationtableName: Name of the tableapiKey: Optional override for env varfilePath: Path to CSV filedelimiter: Field separator (default: ,)hasHeaderRow: First row contains headers (default: true)encoding: File encoding (default: utf-8)All data is returned as arrays of objects:
[
{ _rowIndex: 2, Name: 'Alice', Age: 30, Active: true },
{ _rowIndex: 3, Name: 'Bob', Age: 25, Active: false }
]
Internal fields (starting with _) are automatically managed:
_rowIndex: Row number in source_airtableId: Airtable record ID_createdTime: Airtable record creation timetesting
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.