一键导入
airtable
Search Airtable bases and tables, read records and computed fields, and prepare guarded record CRUD requests with schema-based field validation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Search Airtable bases and tables, read records and computed fields, and prepare guarded record CRUD requests with schema-based field validation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Work with Lexware Office contacts, products, invoices, quotations, bookkeeping vouchers, receipts, payment status, and guarded invoice, quotation, or expense writes through the Public API.
Expose HybridClaw as a custom Alexa skill and prepare guarded Alexa smart-home/device control payloads without exposing Amazon credentials.
Read Blink camera and video-doorbell state, list motion clips, and prepare guarded home-security control requests without exposing Blink credentials.
Read BYD Battery-Box HVS/HVM/LVS/LVL home-storage telemetry through local Modbus or paired-inverter delegation, with read-only safety boundaries.
Harvest monthly SaaS billing invoices into normalized records and official PDF files.
Work with FastBill invoices, customers, payments, reminders, and e-invoice exports through the FastBill XML API.
| name | airtable |
| description | Search Airtable bases and tables, read records and computed fields, and prepare guarded record CRUD requests with schema-based field validation. |
| user-invocable | true |
| requires | {"bins":["node"]} |
| credentials | [{"id":"airtable-pat","kind":"bearer","required":true,"secret_ref":{"source":"store","id":"AIRTABLE_PAT"},"scope":"api.airtable.com/v0","how_to_obtain":"Create an Airtable Personal Access Token or OAuth bearer token with the needed scopes. Set `AIRTABLE_PAT` through browser admin at the active `/admin/secrets` route; if browser admin is unavailable, use `/secret set AIRTABLE_PAT \"<token>\"` in browser `/chat` or TUI; local console fallback: `hybridclaw secret set AIRTABLE_PAT \"<token>\"`."}] |
| metadata | {"hybridclaw":{"category":"productivity","short_description":"Airtable bases, tables, records, attachments, and safe writes.","tags":["airtable","records","bases","tables","attachments","formulas"],"stakes_tiers":{"green":["base-list","schema-read","record-read","formula-field-read"],"amber":["record-create","record-update","attachment-update"],"red":["record-delete"]},"escalation":{"writes":"confirm-each","route":"f14"},"cost_measurement":{"system":"UsageTotals","sub_limit_contract":"R5.4","sub_limit_key":"airtable"}}} |
Use this skill for Airtable Web API work: base and table discovery, schema inspection, record reads, field-aware record creation and updates, attachment field payloads, formula/lookup/rollup reads, and carefully gated deletes.
filterByFormulahttp(s) URLsUsageTotalsAirtable uses Personal Access Tokens or OAuth bearer tokens. Store the token in HybridClaw encrypted runtime secrets; never paste it into the prompt.
Recommended setup order:
/admin/secrets and set
AIRTABLE_PAT./chat or TUI fallback:
/secret set AIRTABLE_PAT "<pat-or-oauth-access-token>".hybridclaw secret set AIRTABLE_PAT "<pat-or-oauth-access-token>"
For live API calls inside HybridClaw, use the helper to build the
http_request payload wrapper, then pass the emitted inner httpRequest object
to the built-in http_request tool. The helper sets
bearerSecretName: "AIRTABLE_PAT" on that inner object so the gateway injects
the bearer token server-side. Do not use bash/curl for live Airtable calls when
http_request is available, and do not ask the user to store a HybridClaw
gateway token as an Airtable secret.
Do not try to verify AIRTABLE_PAT with bash, environment inspection, or by
asking the model whether the secret exists. The model cannot inspect the gateway
secret store. If the operator says the secret was set, attempt the
http_request call with bearerSecretName: "AIRTABLE_PAT". Only say the secret
is missing if the built-in http_request tool returns a gateway error that
explicitly says AIRTABLE_PAT is not set, unavailable, missing, or unresolved.
If the error says the secret is blocked by policy, report a policy/runtime
configuration problem instead of asking the operator to set the same secret
again.
Required Airtable PAT scopes depend on the task:
schema.bases:readschema.bases:readdata.records:readdata.records:writeAIRTABLE_PAT is not set, unavailable, missing, or
unresolved: the active gateway runtime cannot resolve that stored secret. Ask
the operator to set it in the same HybridClaw runtime/session in this order:
browser admin at the active /admin/secrets route,
/secret set AIRTABLE_PAT <pat> in browser /chat or TUI, then local
console fallback
hybridclaw secret set AIRTABLE_PAT <pat>, then start a fresh agent runtime
if the gateway was already running.AIRTABLE_PAT is blocked by secret resolution policy:
report that the stored secret exists but policy/runtime access blocked the
injection path. Do not ask the operator to set the same secret again.list-bases through http_request, then call schema --base-id ... for
each relevant base returned by Airtable.plan for natural-language requests when you need a mutation tier before
execution.validate-fields or --schema-file on write payload builders before
creating or updating records.--operator-grant only after explicit approval or an approved F14
escalation.Run the colocated helper with Node:
node skills/airtable/airtable.cjs --help
Plan a natural-language request without contacting Airtable:
node skills/airtable/airtable.cjs plan "Update the status field on this Airtable task"
List bases:
node skills/airtable/airtable.cjs http-request list-bases
The helper prints a wrapper such as
{ "command": "http-request", "httpRequest": { ... } }. Pass only the
httpRequest value to the built-in http_request tool.
Get base schema:
node skills/airtable/airtable.cjs http-request schema --base-id appXXXXXXXXXXXXXX
List records:
node skills/airtable/airtable.cjs http-request list-records \
--base-id appXXXXXXXXXXXXXX \
--table tblXXXXXXXXXXXXXX \
--field Name \
--field Status \
--filter-by-formula "{Status} = 'Active'" \
--page-size 100
Airtable returns list-record results in pages of up to 100 records. If the
response includes offset, run the same command with --offset <offset> to
fetch the next page.
Get a record:
node skills/airtable/airtable.cjs http-request get-record \
--base-id appXXXXXXXXXXXXXX \
--table tblXXXXXXXXXXXXXX \
--record-id recXXXXXXXXXXXXXX
Validate fields offline against a saved schema:
node skills/airtable/airtable.cjs validate-fields \
--schema-file /tmp/airtable-schema.json \
--table Pipeline \
--fields-json '{"Status":"Active","Amount":1200,"Due Date":"2026-05-31"}'
Create or update a record only after explicit operator grant:
node skills/airtable/airtable.cjs http-request create-record \
--base-id appXXXXXXXXXXXXXX \
--table tblXXXXXXXXXXXXXX \
--fields-json '{"Name":"Acme GmbH","Status":"New"}' \
--schema-file /tmp/airtable-schema.json \
--operator-grant
node skills/airtable/airtable.cjs http-request update-record \
--base-id appXXXXXXXXXXXXXX \
--table tblXXXXXXXXXXXXXX \
--record-id recXXXXXXXXXXXXXX \
--fields-json '{"Status":"Closed"}' \
--schema-file /tmp/airtable-schema.json \
--operator-grant
Prepare an attachment field value:
node skills/airtable/airtable.cjs attachment-payload \
--field Files \
--url https://example.com/signed-contract.pdf \
--filename signed-contract.pdf
Delete a record only after explicit operator grant:
node skills/airtable/airtable.cjs http-request delete-record \
--base-id appXXXXXXXXXXXXXX \
--table tblXXXXXXXXXXXXXX \
--record-id recXXXXXXXXXXXXXX \
--operator-grant
Run offline eval scenarios:
node skills/airtable/airtable.cjs eval-scenarios
When table metadata is available, the helper validates common writable field types before emitting write payloads:
YYYY-MM-DDurl for new files or id for
existing files; new attachment URLs must be public http(s) URLs and must
not target localhost, private, or link-local IP rangesUnknown field types are allowed after schema lookup so newly introduced Airtable types do not block read-preserving updates unnecessarily. Unknown field names or ids are refused.
Formula, lookup, rollup, count, autonumber, created time, last modified time, created by, and last modified by fields are read-only. Include them in record read field selections when the user asks for computed values. Do not include them in create or update payloads.
These operations require --operator-grant:
create-recordupdate-recorddelete-recordcreate-record or update-recordDeletes are red tier. Creates, updates, and attachment updates are amber tier. Read operations and computed-field reads are green tier.
http-request plus the built-in http_request tool.AIRTABLE_PAT is missing unless http_request returns an
explicit missing/forbidden/unresolved secret error.app and record ids that start with rec.UsageTotals; helper output
includes costMeasurement.system = "UsageTotals" so evals can verify the
accounting contract.Run:
python3 skills/skill-creator/scripts/quick_validate.py skills/airtable
node skills/airtable/airtable.cjs --help
node skills/airtable/airtable.cjs eval-scenarios
node skills/airtable/airtable.cjs validate-fields --schema-file skills/airtable/fixtures/schema.json --table Pipeline --fields-json '{"Status":"Active","Amount":1200,"Files":[{"url":"https://example.com/file.pdf"}]}'