Airtable integration

Generate PDFs from Airtable

Connect Quaterio to your Airtable base, pull records via the official REST API and render them as paginated PDFs, one per record, in batch, or as a combined catalog.

The problem

Airtable is great for structured data. PDF output is not its strength. Built-in print views break beyond a few rows, exports lose your fonts and brand, and integrating Airtable data into a maintained PDF workflow usually means a Zapier chain or a custom script. Neither scales past the first few iterations.

How Quaterio handles it

Quaterio's Airtable connector hits api.airtable.com with your Personal Access Token, pulls records and fields, and drops them into Quaterio templates via Remote Content blocks. Attachments, linked records, formula fields and view filters all work via path navigation. Generate one PDF, a batch, or refresh on demand from the editor.

How it works

  1. 1

    Create a Personal Access Token

    Visit airtable.com/create/tokens → Create new token → name it, give it the data.records:read scope, and assign the base(s) you want to read. Copy the token (starts with pat).

  2. 2

    Find your Base ID and Table name

    Go to airtable.com/api, pick your base. The Base ID is at the top of the page (starts with app). The table name appears in the URL examples. Build https://api.airtable.com/v0/{baseId}/{tableName}.

  3. 3

    Pick the Airtable preset in Connections

    Settings → Connections → New Connection → "Airtable". The URL template and Bearer auth are filled in. Paste your full endpoint URL and your token, then run Detect Fields to see what your base actually returns.

  4. 4

    Bind to a template and generate

    Add a Remote Content block to a template, bind it to the Airtable connection and pick the field (e.g. records.0.fields.Title). Export from the editor or call POST /api/v1/generate/template with your template ID.

What the connector handles

  • Official Airtable REST API (api.airtable.com/v0/{base}/{table})
  • Personal Access Token with data.records:read scope
  • All field types: text, number, date, single/multi-select, checkbox, attachment, formula, rollup
  • Linked records and lookup fields supported by path navigation
  • View filtering via ?view= query parameter
  • Attachments as inline images at PDF render time
  • Detect Fields button discovers your schema interactively
  • Refresh on demand from the editor, or via API before batch generation
  • 15 second fetch timeout, cached on the block when Airtable is slow

Generate via API

# After creating the Airtable connection and binding it to a template: curl -X POST https://quaterio.com/api/v1/generate/template \ -H "Authorization: Bearer q_your_token" \ -H "Content-Type: application/json" \ -d '{ "templateId": "airtable_product_brief" }' # → { # "ok": true, # "data": { "downloadUrl": ".../product-brief_en_a7f3b2c1.pdf" } # } # For per-record PDFs use the batch endpoint and pass a record # ID per row; Quaterio fetches each row's data at render time.

Available on Business plan and above.

Airtable and PDF: the real questions

The Airtable preset uses the official REST API (api.airtable.com/v0/{base}/{table}) with a Personal Access Token. Records, fields and attachments all flow into Quaterio. The sections below cover the usual gotchas teams hit on first connection.

Generating a Personal Access Token

Go to airtable.com/create/tokens, click "Create new token", give it a name and assign at least the data.records:read scope plus the specific base(s) you want to read from. Copy the token (starts with "pat") and paste into the Quaterio connection Token field.

Tokens are scoped to specific bases by design. If you want to render multiple Airtable bases into PDFs, generate one token per base (or one token with multiple scoped bases) and create one Quaterio connection per base.

Finding your Base ID and Table name

Visit airtable.com/api and select your base. The Base ID appears at the top of the documentation page (starts with "app", e.g. appXXXXXXXXXXXXXX). The same page lists every table with its plural name as used in URLs. The connection URL becomes https://api.airtable.com/v0/appXXXXXXXXXXXXXX/TableName.

Table names with spaces work via URL encoding. Quaterio handles the encoding when you paste the human-readable name. View names are also supported as a ?view= query parameter, useful when you want to render only the records in a saved Airtable view.

Field types and what comes back

Single-line text, long text, number, currency, percent, date, single-select, multi-select and checkbox all return as primitive JSON values. The default Response Field records.0.fields returns the entire fields object for inspection; pick a specific field like records.0.fields.Name for that string.

Attachments come back as an array of objects with url, filename and thumbnails. To embed an attached image directly in your PDF, use records.0.fields.Photo.0.url as the response field, Quaterio resolves the URL at render time. Note that Airtable attachment URLs expire periodically; for long-term rendering, store the asset somewhere stable.

Linked records and lookups

Linked records return as an array of record IDs, not the linked content. To render the linked content, either: (a) duplicate the data into your main table with a Lookup field, then the lookup value comes back directly in fields; or (b) set up a second Quaterio connection to the linked table and resolve manually in your template.

Formula and rollup fields compute server-side and return as primitive values just like normal fields. They are usually the easiest way to flatten linked data for PDF rendering.

Rate limits and pagination

Airtable enforces 5 requests per second per base. For batch PDF generation, drop the Quaterio batch concurrency to 3 or 4 to stay well under the limit. 429 responses include a 30 second cooldown.

Each list-records call returns up to 100 records. For larger sets, paginate with offset (returned in the response). Quaterio does not auto-paginate the connector, each fetch returns the first page only. For full-table PDFs, use the batch endpoint and pass per-record variables from your application.

Pricing and plan tier

CMS connections are on the Business plan ($30/mo) and above. Airtable Personal Access Tokens are free across all Airtable plans. Watch your Airtable plan limits separately, Free tier caps API usage at 1000 requests per workspace per month.

Try the Airtable connector free

Set up the connection in two minutes. No credit card required to start.