Need development and API help? Ask your questions here!
Recently active
Hi everyone, I have been stuck for over 6 hours trying to get my Airtable "Update Record" node (Node 4) to write data back into my base. The workflow executes completely successfully with 100% green lights, but the rows in Airtable remain completely blank. Here is my exact configuration for Node 4:1. Base & Table: Correctly connected to my target base and table.2. Mapping Column Mode: Set to "Map Each Column Manually".3. Columns to match on: Kept completely empty/cleared out.4. Values to Update: - id (using to match): {{ $json.id }} - Article_Status: Done - AI_Response: {{ $node["Basic LLM Chain"].json.text }} Both the schema names ("Article_Status" and "AI_Response") match my Airtable column headers exactly with the correct underscores. When I click "Execute step" or run the full workflow, n8n shows a successful run, but nothing updates in rows 15 or 16 of my Airtable sheet. Since n8n isn't throwing an error code, I am unable to trace why the data payload is silently droppi
When calling the Airtable MCP server (https://mcp.airtable.com/mcp) over Streamable HTTP with OAuth 2.0, the tool calls list_workspaces and list_bases succeed (isError = false), but the CallToolResult carries the payload only in structuredContent. The standard content array is returned empty.What I observe:- list_workspaces: content is empty, while structuredContent contains the actual workspaces.- list_bases: content is empty, while structuredContent contains the actual bases.- The OAuth access token is valid; the calls are not errors.Why this is a problem: per the MCP spec, when a tool returns structuredContent it should also return a functionally-equivalent text block in the content array (a serialized/text form of the same result), for backward compatibility. Any MCP client or model that reads the standard content array sees nothing and concludes the tool returned an empty result, even though the workspaces/bases were actually returned in structuredContent.Request: please also popu
--- 1/4 ::: Code :::---// Unacceptable behaviour in/from Airtable Scripting Dashboards ::: // "🟢Singular#1" herebelow works, producing "02" output.// "🟠Singular#2" bails out silently, output ends on/at/with "01" stuff.// Merely because inside a function !! // 2026.09.21.Md.21.24. const table = base.getTable("MovLnkRecs_Patterns");const targetRecId = "rectXNyQYotOwq1iw";const patterns_pkFieldID = "fldnkqXQeNTl16704"; // Lookup target record ::: let myRec = await table.selectRecordAsync(targetRecId); //🟢Singular#1. NoDeprec. output.text ("02. PK content :: " + myRec.getCellValue(patterns_pkFieldID)) ; async function go() //{}{ output.text("0. Date() :: " + Date()); output.text("1. table descr. :: " + table.description); //________let myRec = await table.selectRecordAsync(targetRecId); //🟠Singular#2. output.text("Below 1."); // Not seen from function. Nothing from here onward. output.text("2. PK content :: " + myRec.getCellValue(patterns_pkFieldID)) ; output.text("3. below 2.
Hi everyone,I’m using Airtable to manage an inventory of reusable construction materials, and I’d like to turn it into a simple public marketplace/catalogue.Ideally, I’d like to be able to:Share a public link to the marketplace, without requiring users to have an Airtable account. Let people browse the available materials and products, including photos, dimensions, quantities, etc. Allow someone to select a specific quantity of a material/product and submit a reservation request. For example: if there are 50 units available, someone could request to reserve 10 units. Ideally, the available quantity would be updated automatically or the request would be recorded in Airtable. I’d also like to be able to share a direct link to a specific material/product.What would be the best way to set this up with Airtable?
Hi there! Our team submitted a Plumsail Forms extension for review on August 10 and filled out your form the same day. We haven’t heard back from your team since then. Are extensions still being reviewed or has the program been discontinued?
We use Airtable as the central operational system for a construction company. Approximately 20–25 users work in the base throughout the day, and it manages more than 60 active projects.Our site managers need a user-friendly mobile app, including the ability to update project information and upload photos from their phones. We originally connected Glide directly to our main Airtable base, but the volume of API activity significantly slowed down the base.To reduce the load, we created a second Airtable base:Main operational base → Airtable synced base → GlideWe enabled two-way sync between the main base and the synced base. However, edits made through Glide do not update the synced Airtable fields.For example, a user checks a checkbox in Glide. It appears checked temporarily, but Airtable never receives the update. The original unchecked value then syncs back to Glide and reverses the change.We understand that Airtable’s two-way sync may not support edits made through the API, which woul
block release fails with "This request cannot be performed when sandboxing is enabled" while App Sandbox is activeWe're building a CLI-based Interface Extension (Custom Element) and have App Sandbox enabled on our base. Trying to release the extension to the production base with block release fails every time with: ❌ Airtable server returned an error.This request cannot be performed when sandboxing is enabled.Code: airtableApiUnexpectedErrorThis happens consistently, regardless of PAT re-auth (block set-api-key) or a clean block run locally — the extension bundles and would upload fine otherwise.We also tried releasing directly against the Sandbox base's own base ID (using a named remote via block add-remote, same block ID as production), which instead returns a 422 with {"error": {"type": "FAILED_STATE_CHECK"}}.So right now, with App Sandbox enabled, we can't release the extension to either the production base or the sandbox base via the CLI. Is this expected behavior — i.e., does blo
I am working on a Crankflo integration where Airtable holds structured operational records, while Crankflo owns execution, proof and approvals.The sync I am considering:- Airtable keeps customer, workflow or task records.- Crankflo turns selected records into executable Todos.- Results and proof sync back to Airtable as status, links and timestamps.- Approval or retry decisions stay visible without duplicating private payloads.For Airtable builders, would you make Airtable the source of truth and mirror execution state back, or keep execution state outside Airtable and only sync summary fields? Which fields do you usually persist for audit?
Hi,The certificate that `block run` serves — `node_modules/@airtable/blocks-cli/keys/server.crt` — expired on 18 May 2021. Screenshot from Keychain Access attached.Because of this, Development mode doesn't work in the Airtable desktop app on macOS. The app won't accept an expired cert and gives you no way to override it, so you get "Connection error. Please check if your local block is running" even with `block run` clearly listening. Trusting the cert at the system level doesn't help — expiry wins over trust settings.The workaround is to develop in Safari instead of the desktop app, since the browser lets you click through the warning.Two questions:- Could the certificate be regenerated in the next CLI release, with a longer validity this time?- Is there any supported way to point `block run` at my own cert (mkcert, for instance)?Setup: macOS Apple Silicon, Node v20.20.2, blocks-cli 3.0.1, @airtable/blocks interface-alpha.Thanks
Hello everyone,I have a personalized interface that displays images of an Airtable base. This interface allows me to export it in html, only my photos are not displayed since the urls of airtable images are temporary. Do you have a solution please?Thanks
When attempting to apply a lengthly list of Sandbox changes in the appropriate order, it would be very helpful to be able to filter by whether the change is an Add/Edit/Delete change. This would allow us to quickly isolate all newly added fields, apply only those changes, and prepare data in Production prior to pushing additional changes that may be dependent on those fields existing.Additionally, it would be helpful to be able to filter by the element impacted (e.g. Data tables, Interfaces, Automations).
Hi,We have built an API that gets the data from AT and imports the data to WordPress using Custom Post Types that we built. I have fields in AT that get formatting and when those fields are exported some of the HTML tag formatting is not totally retained. I get bold text and paragraphs but for example not H2 tags. The H2 tags gets replaced with ##. Is there something I am not doing in AT or do I need to tweak something in my API or WordPress?Thanks,Stan
Hi everyone,I'm looking for the best way to integrate DocuSign with Airtable.Ideally, I'd like an Airtable Automation to send a document for signature, track the signing status, and update the Airtable record automatically when it's completed.Has anyone built something like this? Is it best to use the DocuSign API directly, a third-party tool like Zapier or Make, or another approach?I'd appreciate any recommendations or examples. Thanks!
Hello,I am writing on behalf of Unito. We are a product that provides deep, two-way sync across work tools. An omission in the API table model prevents us from properly handling dependencies.Summary: `dateDependencySettings` is documented as part of the table model response. It should carry everything needed to handle date dependencies. Which fields are the start date, end date and duration, which field holds the dependency relation, and the rescheduling settings. In practice the property is never returned in the table model response, so there is no way to read a table's date-dependency configuration through the API.Setup: a base on a plan with date dependencies, one table with Start date, End date, a duration field, and a self-linking predecessor field.What I did:1. PATCH /v0/meta/bases/{baseId}/tables/{tableId} with:{ "dateDependencySettings": { "isEnabled": true, "startDateFieldId": "fldSTART", "endDateFieldId": "fldEND", "durationFieldId": "fldDURATION", "predecesso
Dear all, I’m using a Fillout form to fill data into my Airtable base. It has worked well until recently when there appears to be integration problem between Airtable and Fillout. In the beginning, Airtable tells me I have too many integrations with Fillout. As a result, I have deleted all integrations in both Fillout and Airtable, and create a new connection (First Airtable connection). This one allows me to connect to the base I wanted, but doesn’t allow me to select the table within that base (when I select the table, it shows the error note: Failed to retrieve metadata … - below). After pressing “Reconnect Airtable integration” it seemed to connect, but the next time I try to use this connection (“account”) the same issue happens. Then I created another connection (MAP_xxx), but using that still doesn’t solve the problem. The integrations use OAuth, not PAT. Given that all my previous integrations have been deleted, I will have to connect all the forms between Fillout and Airtabl
Does anyone know if its possible to deploy custom interfaces (e.g. built with claude code) via github API. The github connector does not have this capability but wondering if anyone has done this via another route? thanks,Gemma
Hello Airtable team,We have submitted our extension for review about 3 months ago and still haven’t heard anything back. We have issued 3 support tickets and tried contacting you but heard nothing back.Could you please share the status of the review progress? Anything we can do on our end to help speed things up?Here is the block submission id: recqvvvEko3vXqEqN
I am trying and failing to access tables from Gdevelop’s “Send a request to a webpage” action.The action form looks like this: Naturally I am getting “401 Authentication required”, since I haven’t figured out where to place the PAT. I assume it goes somewhere in the URL, but where and in what format. Any help is much appreciated.
Hi everyone,We’re a creative/production agency and over the last few years we’ve progressively evolved from using Airtable as a simple operational tool into building a much deeper internal management system.Today we have an ERP-style workflow in Airtable for Purchase Orders: Purchase Orders (POs) Invoice receptions Payment tracking Approval/payment status flows Linked operational and financial information The system is working well operationally, but now we’re trying to solve the next layer:connecting our Airtable PO system with the Google Sheets budget file of each project.Each project has its own Google Sheets budget where production teams manage budget allocations and spending. What we want is to create a bridge between: structured financial/operational data in Airtable and the budgeting workflow inside Google Sheets Our goal is:when someone imputes/allocates an expense in the budget sheet, that expense should always be linked to an existing PO from Airtable.We’re currentl
I have a use case where I am trying to store email chains in a rich text enabled field. My users would like to preserve the formatting + as much detail from the emails as possible. The native supported markdown capabilities for the most part cover formatting, however I’ve run into a bit of interesting problem with embedded tables. For whatever reason, Airtable’s rich text doesn’t support markdown tables so there seems to be no clean way to do this. I’ve come up with a somewhat hacky solution of converting to ascii tables and embedding it as a code block, but even this get ugly once the table is wide enough to push past the view window of the rich text field (it’s not resizable), which causes the text to start wrapping on the next line. I’m wondering if anyone else has had a similar use case, what they did to work around these limitations, and if I’m missing something/should be taking a different approach? Any input is appreciated,Thanks.
I want to make a custom interface dashboard page that has a more flexible grid layout, but I want to develop all the interface elements that could populate that layout as individual custom interface elements. E.g. I click a ‘+’ icon in a block of my custom dashboard interface and click Custom option to open the ‘Add Custom Element’ dialog box. From there I can add a custom interface element to that block. Is this possible today or do I have to develop all the dashboard options with within the dashboard page element? Thanks!
Hello everyone, i’d like to access to the page airtable.com/account/credits and get the JSON of my referred users, which can be found under “credits”I’m talking about this:"acceptedInvitedUsers": [{ "id": "usrp*****c9IeJ4G84E", "email": "m*******@hotmail.com", "profilePicUrl": "https:\u002F\u002Fstatic.airtable.com\u002Fimages\u002FuserIcons\u002Fuser_icon_7.png", "name": "Maurizio", "wasAwardedCreditForReferringUser": false, "_invitedTime": "2026-06-10T16:59:09.000Z" }, { "id": "usrCw9R7*****KZcIzo", "email": "f*********i@optibus.com", "profilePicUrl": "https:\u002F\u002Fstatic.airtable.com\u002Fimages\u002FuserIcons\u002Fuser_icon_10.png", "name": "*********", "wasAwardedCreditForReferringUser": true, "_invitedTime": "2026-05-26T13:29:57.000Z"
I try to avoid having to build and maintain our own RAG pipeline when uploading our PDF content. So, if we use AWS service like Bedrock Knowledge Base, can we use integrate Vector DB within AirTable? PDF in AWS S3↓Bedrock Knowledge Base↓AirTable Db Vectors
Curious what setups people are using these days.I've seen a few approaches:Zapier/Make automations (works but gets expensive fast) Manual CSV exports from Stripe (painful every month) Custom scripts via Stripe API (requires maintenance)One thing that surprised me when I started looking into this: most Stripe integrations pull gross revenue — but Stripe's processing fees mean your actual net revenue is always lower. So your "MRR" in Airtable ends up being slightly wrong unless you account for fees explicitly.Has anyone solved this cleanly? What's your current setup?
This seems kind of basic, but for some reason I can’t figure it out. I’m using Leaflet for a map using interface extensions, and the marker icon pngs that are part of their dist (e.g., “marker-icon-2x.png”) won’t load. “That’s fine,” I say, “I’ll just copy them to the frontend folder as a workaround.”But those won’t load either, so now I’m a bit confused. As far as I can tell, I can’t use import statements on pngs, because webpack isn’t a fan. It looks like they might be included in the bundle, but they’ve been given automated bundle names (“2b3e1faf89f94a483539.png”), which I know for certain React isn’t dynamically renaming to match in my js. Is there some expected practice in interface extensions or React as a whole for handling this?
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.