--:--:--
4b

airtable-progetti

Legge e (con conferma) scrive la base Airtable "Attività e Progetti" di Ettore via API REST.

← Identità🐱 Romeovrichiede credenziali/env
da chi viene · l'abbiamo controllata

da accertare
mai vettata — nessuno l'ha ancora guardata; non vuol dire che sia a posto

dove sta
C:\Users\Ettore\.openclaw\workspace\skills\airtable-progetti\SKILL.md
C:\Users\Ettore\.openclaw\workspace\skills\airtable-progetti
SKILL.md
name: airtable-progetti
description: Legge e (con conferma) scrive la base Airtable "Attività e Progetti" di Ettore via API REST.
metadata: { "openclaw": { "requires": { "env": ["AIRTABLE_TOKEN"] }, "primaryEnv": "AIRTABLE_TOKEN" } }

Airtable — base "Attività e Progetti"

Questa skill mi permette di leggere e modificare la base di lavoro di Ettore su Airtable
tramite l'API REST ufficiale. Il token sta nella variabile d'ambiente AIRTABLE_TOKEN
(mai scriverlo nei messaggi né nei file).

Regola d'oro (come in AGENTS.md)

  • Lettura: libera. Posso interrogare la base quando serve per farmi il contesto.
  • Scrittura (create / update / delete): solo con conferma. Prima dico a Ettore cosa voglio scrivere, in quale tabella e perché, e aspetto l'OK. Poi eseguo.

Base e tabelle

Base ID: app5EU480jgD2WuJ9

TabellaIDA cosa serveCampi principali
ProgettitblB0C3rF0F9XHrhKMacro-progetti (livello alto)Nome, Priorità, Stato, Obiettivo, Tipo progetto, Prompt; link → Attività, Sotto-Attività, VF · Idee & Script
AttivitàtblBxG70UIBAldYWrAttività/progetti operativiNome, Tipo progetto, Priorità, Stato, Obiettivo, Strumenti, Prossima azione, Note, Prompt; link → Sotto-Attività, Progetti
Sotto-AttivitàtblHaXyyPn5twZPvGPassi sotto un'AttivitàNome, Stato, Priorità, Ordine, Dettagli, Prompt, Prompt 2; link → Attività, Progetto
VF · Idee & ScripttblxLNW0ZcTE4QeNwBanca idee/script Video FactoryTitolo, Canale, Tema, Angolo, Hook, Script, Durata, Fonte, Data fonte, Stato, Note; link → Progetto

Note utili: i campi link (es. Attività, Progetti, Sotto-Attività) contengono ID di record
(rec...), non testo. Priorità/Stato/Tipo sono singleSelect: usare esattamente i valori già
esistenti nella base (in caso di dubbio, prima leggo i valori presenti).

La base cambia nel tempo — verifico la struttura dal vivo

La tabella qui sopra è una fotografia del 25/06/2026. Gli ID non cambiano se Ettore
rinomina tabelle o campi, quindi le chiamate restano valide. Ma se aggiunge o toglie tabelle/campi,
la mappa può diventare vecchia. Perciò: **se qualcosa non torna (errore 422, campo che non esiste,
nuova tabella), o prima di una scrittura importante, chiedo ad Airtable la struttura aggiornata**
invece di fidarmi solo della fotografia:

curl.exe -s "https://api.airtable.com/v0/meta/bases/app5EU480jgD2WuJ9/tables" `
  -H "Authorization: Bearer $env:AIRTABLE_TOKEN"

Questo restituisce tabelle e campi correnti (ID + nomi + tipi). Richiede che il token abbia lo
scope schema.bases:read. In pratica: la fotografia mi fa partire veloce, l'endpoint meta mi
tiene allineato quando la base evolve.

Come chiamo l'API (Windows / PowerShell)

  • Endpoint base: https://api.airtable.com/v0/app5EU480jgD2WuJ9/<TABLE_ID>
  • Uso gli ID tabella (sopra), così evito problemi con spazi/accenti nei nomi.
  • Header di autenticazione: Authorization: Bearer $env:AIRTABLE_TOKEN
  • Importante su Windows: uso curl.exe (non curl, che in PowerShell è un alias di Invoke-WebRequest). In alternativa va benissimo Invoke-RestMethod.

Leggere record (GET)

curl.exe -s "https://api.airtable.com/v0/app5EU480jgD2WuJ9/tblBxG70UIBAldYWr?pageSize=20" `
  -H "Authorization: Bearer $env:AIRTABLE_TOKEN"

Filtri: aggiungere filterByFormula URL-encoded, es. solo attività con Stato "In corso":
?filterByFormula= + encode di {Stato}="In corso". Ordino con
sort[0][field]=Priorità&sort[0][direction]=asc.

Creare un record (POST) — solo dopo OK

curl.exe -s -X POST "https://api.airtable.com/v0/app5EU480jgD2WuJ9/tblBxG70UIBAldYWr" `
  -H "Authorization: Bearer $env:AIRTABLE_TOKEN" -H "Content-Type: application/json" `
  -d '{ "records": [ { "fields": { "Nome": "Esempio", "Stato": "Da iniziare" } } ] }'

Aggiornare un record (PATCH) — solo dopo OK

curl.exe -s -X PATCH "https://api.airtable.com/v0/app5EU480jgD2WuJ9/tblBxG70UIBAldYWr" `
  -H "Authorization: Bearer $env:AIRTABLE_TOKEN" -H "Content-Type: application/json" `
  -d '{ "records": [ { "id": "recXXXXXXXXXXXXXX", "fields": { "Stato": "Completato" } } ] }'

Cancellare (DELETE) — solo dopo OK esplicito

DELETE https://api.airtable.com/v0/app5EU480jgD2WuJ9/tblBxG70UIBAldYWr?records[]=recXXXX

Pattern d'uso tipico

  1. Ettore chiede qualcosa sui progetti/attività → leggo la tabella giusta e rispondo.
  2. Per scrivere → preparo il JSON, mostro cosa farei (tabella, campi, valori) e chiedo conferma.
  3. Dopo l'OK, eseguo la chiamata e confermo l'esito (con l'ID del record creato/aggiornato).
  4. Se un valore singleSelect non esiste ancora, lo segnalo invece di inventarlo.

Errori comuni

  • 401 Unauthorized → token assente/sbagliato: controllare AIRTABLE_TOKEN e i suoi permessi.
  • 403 → il token non ha accesso a questa base o manca lo scope (serve read e/o write).
  • 422 → nome campo o valore singleSelect non valido.
peso
2534token · Opus 55039 caratteri

Conteggio esatto dall'endpoint Anthropic count_tokens (gratuito, solo rate-limited), envelope del messaggio già sottratto. I caratteri sono un dato locale, servono da riscontro.

modifica
file accessori · 1
  • SKILL.md5.0 kB
storico · 0 backup

nessuna modifica fatta da qui: nessun backup

commit sul file
  • 07e801a 2026-07-22chore: commit iniziale workspace Romeo

Scrittura consentita solo dentro le cartelle skills\ dei workspace del registro e solo sul file SKILL.md (deroga alla stanza Identità autorizzata da Ettore il 2026-08-10). Ogni salvataggio crea prima un backup datato; nessun file viene mai cancellato.

LIVE
2 AGENTI AL LAVORO ora · Romeo: chat Discord #romeo-brainstorm · Romeo: chat Discord #romeo-bs226 task in corso su 16818 progetti monitoratiHomelab · Censire HD e creare gallerie dei contenutiHomelab · RAG + NotebookLM locale per documenti voluminosiKB · Costruzione KB (template + 3 argomenti pilota)KB · Obsidian: setup e usoVita · Automazione piano pasti (dispensa→ricette→spesa→piano)Vita · Lista ingredienti collegata a ricette + preferite77 sessioni registrate2 AGENTI AL LAVORO ora · Romeo: chat Discord #romeo-brainstorm · Romeo: chat Discord #romeo-bs226 task in corso su 16818 progetti monitoratiHomelab · Censire HD e creare gallerie dei contenutiHomelab · RAG + NotebookLM locale per documenti voluminosiKB · Costruzione KB (template + 3 argomenti pilota)KB · Obsidian: setup e usoVita · Automazione piano pasti (dispensa→ricette→spesa→piano)Vita · Lista ingredienti collegata a ricette + preferite77 sessioni registrate