INTEGRATIONS

Airtable

Render jsontoimg templates from selected Airtable records with a custom extension.

Install the jsontoimg custom extension (Airtable Blocks CLI). Map record fields to named layers, render selected records, and write assetUrl back to a URL field and/or attachment. Same /api/v1 contract as REST and n8n.

Requires an Airtable Pro or Enterprise workspace for collaborators to run custom extensions. You can develop against a base where you have creator permission.

This extension is button-driven. It does not run on record create/update. For that, use n8n or HTTP.

Install

  1. In Airtable, open Extensions → Build a custom extension.
  2. Install the CLI: npm install -g @airtable/blocks-cli
  3. block init <baseId>/<blockId> . then copy the jsontoimg frontend/ sources into the project (or clone the airtable app and point .block/remote.json at your extension id).
  4. block run — the CLI listens at https://localhost:9000. That URL is not a webpage (GET / returns Not found). Paste it into Edit extension.

First load: accept the self-signed certificate if the browser warns, then return to Airtable.

block release publishes the extension to its installations. Marketplace block submit is not required.

Credentials

  1. Create an API key under Integrations → API keys.
  2. In the extension, open settings (gear).
  3. Paste the jsontoimg API key. For attachment/gallery write-back, also paste an Airtable PAT with data.records:write. Leave Base URL blank for https://app.jsontoimg.com (a trailing /api/v1 is stripped).
  4. Click Test connection.

The keys are stored in the extension globalConfig. Collaborators who can edit the base can read them. Use dedicated keys you can revoke.

First render

  1. Pick a table, template, and format.
  2. Map each named layer to an Airtable field (text layers stringify; image layers take the first attachment URL or an http(s) string).
  3. Pick a URL field and/or attachment field for write-back.
  4. Select records in the grid (cap 50) → Render selected.

Each row mints POST /api/v1/img/sign, writes the signed GET /api/v1/img/{template} URL to the URL field, then downloads that URL (retries HTTP 503) and uploads bytes to the attachment field (POST content.airtable.com/.../uploadAttachment, 5 MB cap).

Limits

  • 50 selected records per run
  • Custom apps cannot subscribe to create/update; use n8n or HTTP for automations
  • Opening https://localhost:9000 in a normal browser tab will show Not found — that is expected

On this page