loading
loading
Utilities
Import, export, and link workflow data with Airtable.
overview
airtable-integration bridges a Trickest workflow and an Airtable base. The import subcommand pushes a JSON file into a named table and can link the new records to rows in another table by a shared field; the export subcommand pulls a table back out and resolves those links, so you get expanded related fields instead of bare record IDs.
A config file of jq queries maps each Airtable column to a query against your input JSON, so you shape raw findings into the exact fields a base expects without writing glue code. Filtering exports with an Airtable formula, capping returned rows with --max-records, choosing columns with --fields, and updating existing rows by a primary field keep repeated syncs idempotent instead of piling up duplicates. The tool batches writes and respects Airtable's API rate limits.
Reach for it at the edges of a pipeline: drop it at the end to publish results into a base the team already sorts and comments in, or at the start to pull a filtered target list out of Airtable and drive discovery from it. It reads JSON or a list as a file and writes a file and a folder for downstream nodes.
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 airtable-integration when a workflow needs to read from or write to an Airtable base, either to publish results into a shared view or to pull a target list out of one. It is a data bridge, not a security tool, so it sits at the edges of a pipeline.
Renders JSON results as an HTML report. Use it for read-only sharing instead of a live, editable base.
Builds a structured report file from results. Good when you want a document rather than a synced table.
faq
related
Decode Android APK files into smali sources and resources.
Check a file's values against conditions and exit with a matching code.
Extract all hosted zones from AWS Route53.
Output file lines by batch size, given START_LINE and END_LINE.
Extract a batch range from a file's lines or a folder's files, with parallel processing.
Organize all the community Nuclei templates from across the ecosystem in one place.
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.