Need development and API help? Ask your questions here!
Recently active
Is there a supported way to update Script Extension code using an API? For example, have scripts stored in a GitHub repository, built using GitHub Actions, and then deployed to Airtable. Currently, my team have just been manually copying and pasting code they build locally onto Airtable, which leaves a pretty large hole for human error (even ignoring the tedium of such a task).I have a horrible workaround that I may use if necessary:/** * Fetches and executes the JavaScript file at the provided `path`. * This can be thought of like: * * ```js * await import(path); * ``` * * Except this bypasses CORS and directly injects the remote code. * Wildly unsafe. * * @param {string} path */async function fetchAndRun(path) { const response = await fetch(path); const text = await response.text(); eval(text);}const myExternalCode = "https://gist.githubusercontent.com/ZacHarroldPartum/fa0f6b6e707c8de3edf725ea0747bba3/raw/2f2fd47a248e8c3954727755ad35ac00193ef113/hello_world.js";await fetc
I’ve built a custom scripting extension that I intend to launch from a record button, send that record’s ID to the extension, and execute my script. I configured the button to launch my extension, which it does, but I can’t seem to get it to register the ID of the record clicked. I’ve tried using both useRecordActionData and registerRecordActionDataCallback, the latter example can be found below:function CheckAvailability() { const [recordActionData, setRecordActionData] = useState(null); const callback = useCallback((data) => { console.log('Record action received', data); setRecordActionData(data); }, []) useEffect(() => { const unsubscribe = registerRecordActionDataCallback((data) => { console.log('Record action received:', data); if (data && data.recordId) { console.log(`Button pressed on record: ${data.recordId}`); // Process data here } else { console.error('No recordId found in actio
Hi community, I recently had to solve the situation where I needed to get URLs from hyperlinks stored in rich text formatted long text fields and put them in another long text field. Essentially, just showing the URL, not the hyperlinked text. I ended up adapting the "Convert attachments to URLs" script (posted by Alex Wolfe). I had found a post here, that used a regex expression but this seemed to only work for visible URLs. I never could get it to work for my use case. I'd love feedback on what I could have done differently/better as I'm sure I haven't thought of everything... or even may have just completely missed something obvious. Thanks!// Script settings - Click the gear icon for the Scripting app to surface these anytime // Surfaces options to select the table, view, and fields needed in the script let config = input.config({ title: '🔗 Extract URLs from hyperlinks', description: 'Extracts URLs from hyperlinks stored in Long Text fields with rich text
Howdy all, I promise I really have looked at exisitng topics but there is information overload. Ideally I would like ot use ODBC driver to connect to AT to Windows via ODBC driver, I found several but they are all expensive subscriptions. It seems AT may have its own ODBC driver now?? But I can’t find it anywhere in the AT documentation. What is the best extension or method to use data from multiple tables within a base, fill in essentially form letters WITHOUT using the extensions that you have to put the information boxes on the template. The data I have for the body of the “letters” is sometimes several pages and I can’t find an extension that doesn’t chop off the rest of the text once it goes beyond the bottom of the information box or window we placed in the page setup. We are printing the letters to PDF. Any suggestions for something that would act as “mailmerge” or is an annual ODBC sub to CCData or Devart the best way to go?? Thanks!!!
Hi everyone,I built an MCP (Model Context Protocol) server that lets you query and update your Airtable base just by chatting with it; no scripts, no complex formulas.Try it out: Intro + demo: rashidazarang.com/c/i-built-an-airtable-mcp-that-lets-you-chat-with-your-database Live server on Smithery: smithery.ai/server/@rashidazarang/airtable-mcp GitHub repo: github.com/rashidazarang/airtable-mcp If you want to test it, share feedback, or talk about custom use cases, you can reach me at rashidazarang.com.— Rashid
I create a GDOC with MAKE I get fields from AIRTABLE and update the DOC I get the DOC link and put it in a URL field in the AIRTABLE record ALL IS OK till here I am trying to get the PDF export link and upload it to the attachment field in AIRTABLE, and it doesn’t work. I even tried a static PDF from DRIVE and it doesn’t work. Why?
Hi, I’m new on using this product and we are trying to integrate this into our system. I managed to setup the api and make some requests however, during my testing in the list records api with `POST` method. I was trying to use this parameter `returnFieldsByFieldId` in the request body but got an error stating this..```{ "error": { "type": "INVALID_REQUEST_UNKNOWN", "message": "Invalid request: parameter validation failed. Check your request data." }}```Mentioned parameter works with `GET` request. Tried a bunch of boolean equivalent for this parameter like- 1- true- True- TRUEHoping someone can help. TIA.
Hi, I need to extract text from multiple (thousands) of PDF files and load it to Airtable so that I can read that text by AT script, each portion of text for each file. Files are stored locally, and I wrote an uploader, which can, for example, for each loaded 200 files (file1, file2 etc…) create new table with 1 record per file. I can use bulk conversion by Acrobat (to doc, html or txt format) and upload those files in the same way. The question is - what format could be used to retrieve the text by AT script? For now I see that I need to write some node.js script (with pdfjs) that will retrieve the text, or remix some AT extension using API to upload text. Can it be done with less efforts? I didn’t consider, at least for now, using 3rd party tool subscriptions because I cannot tell for now how often it be used. maybe one time, maybe more and more, with the total of files up to hundred of thousands. Note: files are already OCR-processed and they are editable PDFs. Maybe a file can be l
I’m running into a confusing problem involving PDF attachments and third-party apps (specifically Noloco) that are connected to my Airtable base. Here’s a detailed explanation:Background & Problem I am using n8n (automation platform) to upload multiple PDF attachments to a field in Airtable. In Airtable itself, everything appears correct: The PDF filenames are always displayed exactly as expected (both in the UI and in the API attachment objects). Noloco (an app builder which connects directly to Airtable) is showing incorrect or strange filenames for some attachments: Instead of the real filename (e.g. 2025-08-06-21-43.PDF), Noloco sometimes displays a generic value like uc as the filename. However, for attachments uploaded manually to Airtable (via UI), Noloco displays the correct filename. What I Have Tried I have checked the attachment objects both in the Airtable API and via scripting: The filename property is always correct and matches what’s shown in the A
I’m struggling with styling in my extension. I can see in the browser Airtable defines over a hundred theme constants useful for styling elements. I want to import these into my own style.css so I can refer to them, but I can’t find a way to do so.I have found useColorScheme() and other ways to access theme constants within typescript, but I don’t want to style everything programmatically. If I want to style in CSS, am I obliged to maintain my own list of constants?
I’m trying to make an extension that generates a file using base data and then re-uploads that file back to Airtable. However, I’m not able to find any way to access the upload attachment HTTP endpoint from within the Blocks SDK. The API reference only shows examples of “uploading” attachments using public URLs.Is there any way to access this functionality (properly) from within a blocks extension? Or alternatively some sort of internal PAT or similar I can use to make the POST request without hardcoding something that will be exposed in the browser?
I am building an app that will use the Airtable API to export and format data from many tables within our base. I am pushing my code to a public GitHub repository.I am obviously treating the API key(s) as secrets and not pushing them to my repo, should I also treat the base’s ID value as a secrets value? What about the table IDs?
So I want to extract text from a picture like below format the data to be analyzed like the Excel below.
Hello, I am pulling in data via json API and need to know where to go from here? I have a table (sales team) that has the "salesrep id" and I need to map in the ytd sales data for each salesrep id. I am not sure what to do next to loop through the json object data and map them accordingly.
Dear Airtable Team and Community, I was genuinely excited about the new features showcased in the AI Playbook during the “Omni and Field Agent” webinar. The potential of these tools, particularly the “Maximize Event ROI (MER)” and “Visualize Product Materials (VPM)” templates, was impressive and promising. However, I encountered a few issues after downloading and testing the templates. In the MER template, I was unable to activate the map feature, despite being on a Teams subscription. Similarly, in the VPM template, the 3D viewer did not appear to be available. Additionally, I noticed that all my AI credits were consumed the following day, even though I had only copied the templates into my workspace without making any active use of them. Could you kindly clarify if these features are currently functional or if certain elements were included primarily for demonstration or marketing purposes? If I’ve missed a step in setting things up correctly, I’d truly appreciate some guidance on ho
I have an Airtable node in n8n/If I run Execute Workflow, If “Execute Step” id :rec7hUqA1NtQcoTZ4createdTime; 2025-07-28T20:53:58.000ZBooks: 1RecordID: rec7hUqA1NtQcoTZ4
I am using the Python client for the Airtable API. I am trying to read records from a multiple select column, and all I get back are values that look like the following: ['reccUldOjxhd0jlJW']. These seem to be a hash or maybe a pointer? How can I get the actual values?
Hey everyone 👋If you've ever run into Airtable API limits or just need a faster way to access your base data regularly, I’ve put together a simple workflow that might help.Using CSV Getter, you can sync your Airtable base to a Google Sheet on a schedule.Results:✅ Faster access to your data✅ Fewer Airtable API calls✅ Automatic backups in Google SheetsThe Google Sheet acts like a proxy API. You can use it for lightweight querying or integrations, without constantly hitting the Airtable API.I wrote a short guide with a diagram and step-by-step setup instructions here:👉 https://www.csvgetter.com/blog/say-goodbye-to-airtable-api-limits-with-this-google-sheets-hackWould love to hear your thoughts or questions!- Gavin
Hi, I have this table where i would like to filter by the ID of the player. But I strangely cannot find a way to do it. Thanks a lot for your help,Laurent
Ok, who approved the new gui layout? I keep going top left for the Hide fields, filter, group, sort….. only for it not to be there anymore!!! Any chance you could put some real effort into wrapping the headers of columns please?ALSO allow us to colour the different groups. 50 shades of grey is really difficult to keep track of!
The back end of one of our products is built on Airtable. Its been runing fine, but in the last couple of months (since May 18th) it hasn't been working anymore. Unfortunately we didn't discover this until now, and this means a key product in our whole business is broken/down.Did airtable change its scripting system to change how attachment fields work? The images being attached work, the script appears to successfully run, logs are totally okay, just the images don't get attached at the end.More info:We wrote an airtable script that, based on data, attaches a photo to the airtable. The script stopped working recently. It gets triggered, appears to run, logs look fine, but images aren't attached. It was working before, but stopped working around may. What do you think the issue is?We’ve emailed Airtable support but haven’t heard back yet :( let table = base.getTable('Raw Data');let inputConfig = input.config();let recordNumber = inputConfig.RecordNumberAutomation; // Replace with actua
Hello Airtable Community,I’m working on an integration where we need to detect if someone updates any field in a Form View (e.g., adds/removes/hides fields). I’ve explored the Airtable Metadata API, specifically the endpoint: bashCopyEditGET https://api.airtable.com/v0/meta/bases/{baseId}/views While this API returns the list of views, including forms, it doesn’t seem to provide: A timestamp or audit log of when a form was last modified Information on which specific fields were updated or reordered Any versioning or update tracking for forms Questions: Is there any way (via API or otherwise) to determine if a Form View’s field configuration has been changed (e.g., which fields are visible/required/ordered)? Can we track when a particular Form View was last updated? Is there a webhook or event system available for view updates? Any guidance or workarounds would be greatly appreciated.
When working with building automation systems outside of Airtable, a lot of use cases involve taking actions on Airtable data. These are currently done via custom Airtable API calls and actions that require a lot of configuration. They’re difficult to set up, maintain, get right, and scale.It would be a huge advancement if, instead of hooking up all those API calls and configurations ourselves, we could just provide our base and table and provide our request to Airtable Omni via the API and let it do the agentic work on our data.For example, the automation might look something like:ClickUp trigger > Airtable > Airtable Query: “Look through user feedback data in table X in base Y and provide a summary report of the 3 most important areas of improvement according to Z criteria” > Upload the PDF and upload to Microsoft OneDrive.”The parts in bold is where it would be very helpful to simply provide that as a query to Airtable’s AI/Omni via API.If not via the API, is it possible to
I’m creating an extension here. Often times I want to send record from extension to my backend api. My backend already supports the json serialized format returned by get records api. It would be very helpful if there is a method to convert record object in blocks sdk to that format. Or is there already a way for that?Thanks
Is there a script that can initiate printing of a record designed in the printing extension from an interface? As in, Print This Record?
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.