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 condition | Mapping or action |
|---|
| baseUrl | Workspace HTTPS origin, without /api/v1 |
|---|
| templateId / slotId | Ready template ID and exact design-area ID |
|---|
| assetId | Owned saved artwork ID |
|---|
| runKey | Record ID plus artwork version, persisted across retries |
|---|
| apiKey | Secret variable, not a regular record value |
|---|
| jobId | Acceptance 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 condition | Mapping or action |
|---|
| 401 | Use the full Bearer value and a non-revoked API key; a website key is for the iframe only. |
|---|
| 404 | Confirm the template, asset or job belongs to this account or is an accessible public template. |
|---|
| 409 | Read detail: result not ready, changed inputs, stale revision and expired review need different actions. |
|---|
| 402 / 429 | Check account allowance / reduce concurrency and back off for rate limits. |
|---|
| 422 | Inspect the slot ID, ready status, nested options and direct-image URL. JSON options must be an object. |
|---|
| Broken destination image | Download with authentication and upload bytes; protected URLs are not public attachments. |
|---|