Need development and API help? Ask your questions here!
Recently active
We are a small manufacturing company, and have moved most of our inventory into Airtable for our current build and possibly will continue to use for future buildsIs there a script I can use to stop duplicates from happening within a table? Is there a way to move about parts from one ”location” (which is already a table in the base) to another without physically having to continuously go into the data base? continue question from above - is there a way to have 1 part but with multiple locations? We have parts that are stored in multiple staes (eg: flat parts and then folded parts but both are the same part) what is the best way to show this other than having multiple part numbers or prefixes for the same part.Hope that all makes sense…..
Hi there, I have IFTTT applet that creates a new Airtable record when a Google calendar event begins. The description for the event comes in as HTML. I’ve been looking for a script that could convert the HTML to rich text so that it is more human readable in the base. I know about the Marked Preview app, but I don’t think that’ll be the best solution, since I will be embedding this base and I currently cannot embed apps. Any help is greatly appreciated.
So while updating my table coffee shops, I accidentally removed trading hours from MANY shops.I easily fixed this with Ctrl+Z, but now even though the data looks correct, the data is not being pulled from airtable to my website. If I duplicate the entry, same issue. But if I remake the entry EXACTLY the same, then it works. How can I resolve this? The issue is that airtable is showing me data that looks correct, but is syncing incorrect data.
We recently added the ability to create tables, create fields, and update field options from the scripting app. The methods to perform each of these actions are the same as in the Blocks SDK. base.createTableAsync table.createFieldAsync field.updateOptionsAsync Refer to the Field Options documentation to see which options are supported for each field type The field types that are allowed to be created via base.createTableAsync and table.createFieldAsync are: barcode checkbox currency date dateTime duration email multilineText multipleAttachments multipleCollaborators multipleRecordLinks multipleSelects number percent phoneNumber rating richText singleCollaborator singleLineText singleSelect url The field types which cannot be created are: autoNumber button count createdBy createdTime externalSyncSource formula lastModifiedBy lastModifiedTime multipleLookupValues rollup These three new methods are currently only supported in the scripting app, not in automation “Run a script”
I am creating a Airtable base for HR recruiting purposes. I use the Airtable form to collect information from potential candidates. I would like to collect only their LinkedIn Profile URL and contact info (email or phone). Using the collected LinkedIn Profile URL, I would like to pull info such as Name, Location, Experience, Education from LinkedIn into Airtable fields. Can this be done by Scripting block or is there a better alternative solution to this? Your help is greatly appreciated. Thanks in advance.
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!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.