Install
openclaw skills install pydantic-airtableManage Airtable tables and records via the pydantic-airtable Python library. Use when creating, listing, updating, deleting, or inspecting Airtable records o...
openclaw skills install pydantic-airtableUse this skill for practical Airtable management through pydantic-airtable.
Keep SKILL.md focused on workflow. Read references/api-surface.md only when exact method names or signatures matter.
Install the library if needed:
pip install pydantic-airtable
Provide credentials via environment:
export AIRTABLE_ACCESS_TOKEN="pat..."
export AIRTABLE_BASE_ID="app..."
Most bundled scripts also accept --table and optional --base-id overrides.
scripts/model_ops.py --module ./path.py will import and execute that Python module. Only use it with trusted local code.--fields, --records, and --updates accept @file.json, which reads local files from disk. Inspect those files before passing them in.pydantic-airtable is normal for this skill, but use a virtualenv/container if you want tighter isolation.AirtableManager for base, table, schema, and direct record operations.AirtableClient for low-level record APIs and batch record operations.AirtableModel when the user wants typed Pydantic models with CRUD helpers.For exact method coverage, read references/api-surface.md.
scripts/.AirtableModel or AirtableManager snippets.scripts/manage_records.pyUse for record CRUD without rewriting the same setup code.
Supported actions:
listgetcreateupdatedeletebatch-createbatch-updateExamples:
python scripts/manage_records.py list --table Tasks --max-records 10
python scripts/manage_records.py get --table Tasks --record-id rec123
python scripts/manage_records.py create --table Tasks --fields '{"Name":"Ship it","Status":"Open"}'
python scripts/manage_records.py update --table Tasks --record-id rec123 --fields '{"Status":"Done"}'
python scripts/manage_records.py delete --table Tasks --record-id rec123
python scripts/manage_records.py batch-create --table Tasks --records '[{"Name":"A"},{"Name":"B"}]'
scripts/manage_tables.pyUse for schema and table operations.
Supported actions:
list-basesbase-schematable-schemacreate-tableupdate-tabledelete-tableExamples:
python scripts/manage_tables.py list-bases
python scripts/manage_tables.py base-schema
python scripts/manage_tables.py table-schema --table Tasks
python scripts/manage_tables.py create-table --name Tasks --fields '[{"name":"Name","type":"singleLineText"}]'
python scripts/manage_tables.py update-table --table-id tbl123 --updates '{"name":"Tasks Archive"}'
python scripts/manage_tables.py delete-table --table-id tbl123
scripts/model_ops.pyUse when the task is explicitly model-driven.
Supported actions:
create-table-from-modelsync-modelvalidate-modelThe model file must expose a class by name.
Examples:
python scripts/model_ops.py validate-model --module ./task_model.py --class-name Task
python scripts/model_ops.py sync-model --module ./task_model.py --class-name Task --create-missing-fields
AirtableManager for table creation, schema inspection, and record CRUD across named tables.AirtableClient when the user needs direct record listing or batch writes against a single configured table.AirtableModel when the task should stay type-safe and reusable in app code.@file.json to the script arguments that accept JSON input.For --fields, --records, and --updates:
'{"Name":"Task"}', or@path/to/file.json to load JSON from disk.Catch and surface:
ConfigurationError for missing credentials/configRecordNotFoundError for missing recordsAPIError for Airtable API failuresValidationError for model/schema mismatchesAirtableError as a final fallback