loading
loading
Utilities
Import, export, and upsert workflow data against an Airtable base.
overview
airtable-integration sits at pipeline edges: import shaped JSON into a named --table under --base, or export rows to feed discovery. Subcommands are import and export. Outputs are a file and a folder for downstream nodes.
Reach for it when the team already triages in Airtable. Pass --config (jq field maps), --input-json or --input-list, and optional --link-table with --link-field. Re-runs stay clean with --update plus --primary so matched rows patch instead of duplicating.
Unlike json2html or generate-yaml-report, this writes a live editable base, not a static report. Export supports --formula, --fields, --max-records, and --expand. Trickest runs it as a managed node; supply --api-key as an input.
use cases
Import a JSON output into a table so results land in a base the team can sort, filter, and comment on, instead of a raw file no one opens.
Export a table of domains or assets, optionally narrowed with an Airtable formula, and feed it into discovery so the source of truth stays in the base.
Run import with --update and --primary so re-running the workflow patches existing rows matched on the primary field rather than creating new ones each time.
Import with --link-table and --link-field so new records connect to existing rows on a shared field, building relationships the team can navigate in the base.
reference
| Name | Type | Flag | Description |
|---|---|---|---|
| api-key | STRING | --api-key | Airtable API key, generated from your Airtable account page. |
| base | STRING | --base | Airtable Base ID (starts with app followed by 14 characters). |
| table | STRING | --table | Name of the table to import into or export from. |
| config | FILE | --config | Config file of jq queries that map input JSON to Airtable columns. |
| input-json | FILE | --input-json | Input JSON to import into the table. |
| formula | STRING | --formula | Airtable formula used to filter the table on export. |
| update | BOOLEAN | --update | Update existing records instead of creating new ones. |
| primary-field | STRING | --primary | Name of the primary field, required with --update. |
Showing key inputs. airtable-integration exposes 18 inputs in total.
| Name | Type | Flag | Description |
|---|---|---|---|
| import-mode | BOOLEAN | import | Import subcommand: push a JSON file into Airtable and optionally link records to another table. |
| export-mode | BOOLEAN | export | Export subcommand: read a table from Airtable while resolving links to other tables. |
| api-key | STRING | --api-key | Airtable API key. |
| base | STRING | --base | Airtable Base ID (starts with app followed by 14 characters). |
| table | STRING | --table | Name of the table to import into or export from. |
| config | FILE | --config | Config file of jq queries that map input JSON to Airtable columns. |
| input-json | FILE | --input-json | Input JSON to import into the table. |
| input-list | FILE | --input-list | Input list to import, one value per line. |
| field | STRING | --field | Name of the field to populate when importing from --input-list. |
| link-table | STRING | --link-table | Name of the table to link imported records to. |
| link-field | STRING | --link-field | Common field shared between the main table and the link table. |
| update | BOOLEAN | --update | Update existing records instead of creating new ones. |
| primary-field | STRING | --primary | Name of the primary field, required with --update. |
| fields | STRING | --fields | Table fields to export, as a comma-separated list. |
| formula | STRING | --formula | Airtable formula used to filter the table on export. |
| expand | BOOLEAN | --expand | Expand linked fields on export instead of returning record IDs. |
| expand-fields | STRING | --expand-fields | Linked-table fields to expand, as a comma-separated list. |
| max-records | STRING | --max-records | Maximum total number of records returned on export. |
example
# import shaped workflow findings into Airtable, updating rows by primary fieldairtable import --base appEXAMPLE0000000 --api-key $AIRTABLE_API_KEY --table Findings --config airtable-fields.json --input-json findings.json --link-table Hosts --link-field host --update --primary name[*] Input records: 18[*] Existing records: 9[*] New records: 9[*] Updated records: 9[*] Creating new records...[*] 9/9[*] Done[*] Updating Airtable records...[*] 9/9[*] Doneguidance
Use when a workflow must read from or write to an Airtable base: publish findings into a shared view, or pull a filtered target list. It is a data bridge at pipeline edges, not a scanner. Prefer json2html or generate-yaml-report for static, non-synced deliverables.
Renders JSON as an HTML report. Prefer for read-only sharing when nobody needs an editable base.
Builds a structured report file. Prefer when you want a document rather than a synced table.
faq
related
Spider a URL and return a wordlist for password crackers.
Wordlist and mined-word subdomain permutation.
CSS selectors over HTML, the jq counterpart for markup.
Extract chosen URL parts from stdin into clean line lists.
Decode Android APK files into smali sources and resources.
Check a file's values against conditions and exit with a matching code.
A JSON findings file feeds airtable-integration, which shapes it with JQ and imports the records into an Airtable base the team can work in.
Facts on this page come from the live Trickest tool library.