Airtable integration
10 min read · Reviewed

Airtable Mockup Automation: Record Inputs and Render Jobs

Keep artwork approval and job tracking in Airtable. Use the supplied small scripts to make HTTP calls, or let n8n or Make orchestrate the same records if you want a visual workflow without a scripting action.

By Mockups Generator · Copyable scripts or external no-code orchestration

FROM EVENT TO IMAGEExample workflow
↗Your trigger

New artwork or an order

Good things grow source artworkGeometric color study source artwork
{ }Render API

Template + design + settings

Background render job
◎Signed webhook

Verify the completion event

Continue your workflow

Before you start

  • A Mockups Generator account, an available render allowance and a named API key from API access.
  • A ready template, its exact artwork-area ID from GET /api/v1/templates/{template_id}, and an approved sample export.
  • An owned artwork asset ID, or a direct public image URL. Prefer saved assets for repeated work.
  • A source-record ID plus an artwork version for a stable idempotency key, and a place to persist the accepted job ID.
  • Permission and plan support for Run a script, or an external automation tool connected to your base. Create secret input apiKey for direct scripts.

Download the setup resources

Examples contain placeholders, not live credentials. Follow the format label: configuration recipes are instructions, while workflow and connector files can be imported into their platform. Platform account permissions and a small live test are required.

  • JavaScript

    Airtable submit script

    Paste into Run a script. Reads mapped inputs and an API-key secret, then exposes jobId and status without logging the key.

  • JavaScript

    Airtable status script

    Checks one existing job per run and returns status, error and the canonical protected result URL.

  • CSV field checklist

    Airtable field schema

    Create or map these fields in a Mockup jobs table. Contains no actual records or credentials.

  • Postman JSON

    Shared Postman collection

    Importable requests for assets, JSON jobs, reviewed plans, recovery and file downloads. Set your key locally.

  1. 1

    Create a job-tracking table

    Add fields for Record ID, Template ID, Slot ID, Asset ID, Artwork Version, Approved, Run Key, Job ID, Job Status, Error, Delivered and the final attachment or storage URL. Keep submission identity separate from delivery status. Use a saved asset ID for repeated artwork; an attachment is not durable public hosting.

  2. 2

    Trigger only approved, unsubmitted work

    Use a record matching conditions or entering a ready view. Require Approved and an empty Job ID. Derive Run Key from the record ID plus a deliberately managed artwork version before the submit action. Avoid using a changing timestamp for retries.

  3. 3

    Map script inputs and a secret

    In Run a script, create input variables baseUrl, templateId, slotId, assetId and runKey. Add apiKey as a secret variable, accessible as input.secret.apiKey. Paste the submit script and test with one real record. Do not store a secret in a normal table field or print it to execution logs.

  4. 4

    Persist the outputs immediately

    Use Update record after the script to write jobId and status to the triggering record. If you lose the HTTP response or the record update fails, repeat the same request with the same Run Key. The server returns the accepted job for identical inputs.

  5. 5

    Check status in a later automation

    Create a scheduled automation over records with pending Job ID values, or use an external scheduler. Run the status script once per record with baseUrl and jobId mapped, then update Job Status and Error. Do not put a polling loop or long sleep inside the submitting script. Route terminal failures to review.

  6. 6

    Deliver the image through authenticated storage

    A completed result URL in this API requires an owner credential. Use n8n, Make or a server-side file step to download and upload the image to controlled storage. Supply Airtable an accessible URL only if that storage link can be fetched without extra bearer headers. Persist the final attachment after Airtable has successfully fetched it.

  7. 7

    Prevent accidental re-triggering

    Updating status should not satisfy the original submission condition again. Keep the approval view restricted to empty Job ID records. A new artwork version is a new intended operation; clear or supersede identity fields only as part of that explicit change.

Direct scripting versus a fully visual workflow

The provided scripts are copyable HTTP adapters, so direct Airtable setup is a small scripting integration. For a visual no-code alternative, connect an Airtable trigger to the supplied n8n workflow or Make HTTP scenario and write its job ID and status back to the same fields. Run a script availability depends on plan and administrator controls. Its fetch call has a 30-second timeout, so asynchronous submission is the practical default.

Official platform documentation for this setup

Input and output field mapping

The submit script uses saved asset IDs by default. It exposes jobId and status for a following Update record action. The status script exposes jobId, status, done, terminal, resultUrl and error. resultUrl is a protected canonical route intended for an authenticated transfer step. It is not a public Attachment field URL.

Field or conditionMapping or action
baseUrlWorkspace HTTPS origin, without /api/v1
templateId / slotIdReady template ID and exact design-area ID
assetIdOwned saved artwork ID
runKeyRecord ID plus artwork version, persisted across retries
apiKeySecret variable, not a regular record value
jobIdAcceptance output, stored for future status checks

Why artwork attachment links need care

Airtable's viewer links require base access, while attachment download links are temporarily accessible and expire. For a one-off design_url request, obtain a fresh direct download URL from the actual attachment field and submit promptly. For scheduled or repeated work, download and upload the original into your Mockups Generator design library, then use asset_id. Keep the attachment's lifecycle separate from the render job's lifecycle.

Official platform documentation for this setup

Collections driven by Airtable approvals

Collect approved asset IDs and explicit template area assignments, preflight the plan and show its image count to the reviewer. Store plan_id and plan_hash in dedicated fields. After approval, submit the unchanged token and a stable collection Run Key. A new preflight can change the token, so do not recreate it during a lost-response retry. Use an external file workflow to store collection ZIPs and attach individual listing images where needed.

Retries, duplicate events and interrupted runs

Use one key for one intended operation, such as order-1042-artwork-v1. Keep it stable on a lost-response retry. The same inputs and key return the same render job; changed inputs return 409 and need an explicit new version. Do not repeat a synchronous paid render just because the previous step timed out. Retry reads and idempotent submissions with bounded backoff for temporary network or 5xx errors. Fix 401 credentials, 404 ownership, 402 allowance and 422 validation before retrying. When a polling deadline is reached, save the job ID and resume checking it later; the server continues independently.

Troubleshooting checklist

Check the actual HTTP status and detail field before changing the workflow. Test a single ready template and saved asset first, then add multi-area placements and collection output. Avoid enabling schedules until the downloaded file and its destination record have both been inspected.

Field or conditionMapping or action
401Use the full Bearer value and a non-revoked API key; a website key is for the iframe only.
404Confirm the template, asset or job belongs to this account or is an accessible public template.
409Read detail: result not ready, changed inputs, stale revision and expired review need different actions.
402 / 429Check account allowance / reduce concurrency and back off for rate limits.
422Inspect the slot ID, ready status, nested options and direct-image URL. JSON options must be an object.
Broken destination imageDownload with authentication and upload bytes; protected URLs are not public attachments.

Official references

Platform requirements were checked against these official sources on . API examples are checked against the current application. Validate credentials, imports and destination behavior in your own platform account.

FAQ

Common questions

1.Can this be done without writing a script?

Yes. Use Airtable as the trigger and tracking database in an n8n or Make workflow. Direct outbound calls inside Airtable use the supplied Run a script examples.

2.Can I paste a render result_url into an Airtable attachment?

Only when the URL is accessible to Airtable without an extra authorization header. Canonical Mockups Generator result routes are protected, so download and upload through an authenticated helper or controlled storage first.

3.Should I poll inside an Airtable script?

No. Submit once and persist the ID, then check status in later scheduled or externally orchestrated runs. This avoids spending the script's execution budget on waiting.

Put the guide into practice

Review the workflow and requirements before creating your next output.

Get the n8n alternativeFree plan · no credit card · no watermarks
PSD compatibility reportsSaved projectsAPI with webhooks