Need development and API help? Ask your questions here!
Recently active
Is there still no way to create reusable code in Automations?I see this thread from 2021, with 6k+ views, which seems to have no resolution (blockchaining is possible in Scripting Apps, but not Automations). Someone must have solutions for this? Copying/pasting seems prehistoric.
I've created a script that is attached to a view's button.In this script, I'm calling an API with remoteFetchAsync(). I need to supply basic authentication credentials, but btoa() and Buffer don't work in my script: const authorization = btoa(`${ credentials.username }:${ credentials.password }`)const authorization = Buffer.from(`${ credentials.username }:${ credentials.password }`).toString('base64')output.text(`authorization: ${authorization}`)Is there another option?Is TypeScript supported in a script that is triggered by a button? If so, how do I enable it?FYI, the "Ask the community" link (https://community.airtable.com/c/developers/scripting) returns 404.
I’m trying to integrate SAP Business One (SAP B1) Service Layer API with Airtable scripting to fetch business partner data. The integration works perfectly in Postman and Python, but when I run the same API request inside an Airtable scripting block, I get the following error:401 - Invalid session or session already timeout. What I’ve Tried: Confirmed that it works in Postman and Python I can successfully authenticate and fetch data from SAP B1. Session ID is returned properly, and I manually add the ROUTEID. Using remoteFetchAsync() in Airtable Scripting I correctly pass Content-Type and Cookie headers. Even when I manually copy a working session ID from Postman, I still get a 401 Unauthorized error Has anyone successfully integrated SAP B1 with Airtable scripting? Could Airtable be modifying the request headers in a way that causes SAP B1 to reject it? Is there any alternative way to bypass CORS while using Airtable scripting? Any other troubleshooting step
Hello, I’ve recently come across Airtable as I’m researching how to create a local business directory website. This tool seems really helpful for creating databases, however I’m not sure how this can be incorporated into my site, I’m building my own website, my dev knowledge is not vast right now as I have some refreshing to do, but it’ll just be in HTML/Javascript. Is it possible to incorporate this into my site, and then modify the appearance with some CSS? If so, can anyone help provide information or point me in the direction of the help article for this?Thank you!
Hello all,I have multiple tables each with multiple single-select fields that I have created via the Airtable API.352 separate fields across 40-something tables. When creating the tables and columns I am able to define the selection options for each column and everything works smoothy.However I can not set a default option for these columns when creating them through the API. It is far too many columns for it to be reasonable to manually set each column default in the UI, as it is I already have to do some manual operations to create a formula field in each of these tables after creation due to limitations in the API capabilities.Does anybody know of a way to set default values in my field en mass?The majority of the fields hold the same selection options and would have the same default option set.I would even accept nuking the fields and/or tables and recreating them if my creation call can be altered to set the default but I was not able to accomplish this. I appreciate any assistanc
Hi Airtable Community,I'm building an Airtable-like application using React.js, Redux, Node.js, and MySQL. In my app, all records (raw data) are sent to the frontend, and I need to handle filtering, sorting, and grouping entirely on the client-side, without making API calls.I want to ensure efficient data handling and real-time UI updates while maintaining good performance, especially for large datasets.Some Considerations:How does Airtable handle large datasets on the frontend efficiently? Should I use IndexedDB, Web Workers, or in-memory filtering for better performance? How can I implement real-time UI updates when filtering/sorting large data in React.js? Are there any caching mechanisms (e.g., Apollo Client, Local Storage) that help optimize filtering/sorting? Any experience with virtualization (e.g., React Virtualized) for large lists to improve rendering speed? Would Redux be a good option for managing local state filtering and sorting?If you have any references, articles, or do
This question is similar to what another person asked here:I would like to also:1- Select the fields where duplicates values exist.2- Select to keep the newest record to keep3- Run it and be done.however I would like this to be the case with newly created records as well. Every new record that contains a duplicate value in a field would be kept while the existing record with the same value would be deleted. This way the newest record with the value is kept, the old is deleted. The solution in the above link only works for existing records, not newly created records. So I was wondering if there is a way to delete records in this way in Airtable. fyi: my new records are being made using a post API request, if that information helps. thank you
Gents, do you know how to connect the Airtable db with Telegram bot?
Hello,I am having trouble getting a script to automatically generate records from two lists: bonus plan and staff list into “bonustable”. I was able to set up the automation steps to find the corresponding lists from the bonus plan and staff list. I have tried AI to get the script but it is not iterating each item from the input list. I also want to input the value year-month from the previous step of automation so that the created record already has year-month linked.Essentially I am looking for the following output:Jane / Bonus Plan A / 2025-03Jane / Bonus Plan B / 2025-03Jane / Bonus Plan C / 2025-03Ben / Bonus Plan A / 2025-03Ben / Bonus Plan B / 2025-03Ben / Bonus Plan C / 2025-03 Script is as follows:// Access input variables from previous automation stepsconst inputConfig = input.config();const bonusPlanNames = inputConfig.bonusPlanNames; // Array of Bonus Plan names (primary field)const staffNames = inputConfig.staffNames; // Array of Staff names (primary field)const yearMonth
Hello is it possible to use NodeJS coding within Airtable Scripts? I have a library of API codes that were configured with NodeJS. However, I seem to have issues with Axios and request-promise… Code Example: Code Example: Code Example: /////////////////////////////// Change these parameters ///////////////////////////////const API_UID = 'Oauth App UID from account settings';const PRIVATE_KEY = 'path/to/private/key.txt';/////////////////////////////const jwt = require('jsonwebtoken');const rp = require('request-promise');if (!global['URL']) { global.URL = require('url').URL;}const fs = require('fs');let privateKey = fs.readFileSync(PRIVATE_KEY);let uri = new URL(`[REDACTED]`);let aud = `${uri.protocol}//${uri.hostname}`, time = Math.trunc((new Date().getTime()) / 1000);let claim_set = { iss: API_UID, aud: aud, scope: 'admin_read admin_write', exp: time + 60, iat: time};let assertion = jwt.sign(claim_set, privateKey, {algorithm: 'RS256'});let payload = {
hello everyone, is there any way to filter the return using a GET call, I need it to return only the information of a column, which I call ID, I need my API return to show only the information corresponding to an ID, I can do that?
Hi,Does anyone have an idea on how to embed a stock chart into airtable that depends on the record chosen? I have an example of an iframe:<iframe referrerpolicy="origin" width="100%" height="470" style="background: #FFFFFF;padding: 10px; border: none; border-radius: 5px; box-shadow:0 2px 4px 0 rgba(0,0,0,.2)" src="https://jika.io/embed/area-chart?symbol=AAPL&selection=one_year&closeKey=close&boxShadow=true&graphColor=1652f0&textColor=161c2d&backgroundColor=FFFFFF&fontFamily=Nunito"></iframe>The symbol of the stock (eg symbol=AAPL ) I have in a coloum/record; so I would need the option to pass the symbol to the iframe to change the content displayed (stock item) depending on the chosen record. Then the iframe shall be embedded in the interface. Any ideas/help appreciated. Thank you!!
Hello,as explained in the title:I have a table "User" I have a single select field named "Color" 3 value possible: Red, Blue, Green Using make.com, I want to add dynamically a 4th option "yellow" So that the new possible value for this field would be: Red, Blue, Green, or YellowI am planning on doing it via Make.com using the API module and a PATCH but i wanted to check if it was possible to do it from an airtable perspective?thanks
Hello,I am a beginner and would like to use Airtable both as a database (clients, prospects, accounting) and as a CRM to schedule calls, SMS, and emails, similar to HubSpot, Zendesk, or PipeDrive. If Airtable allowed these actions directly from the database, it would closely resemble a CRM, but I’m not sure if this is natively possible.Since its interface already looks like a CRM, why doesn’t Airtable include built-in features for call reminders, SMS, or automated/one-click emails? If this isn’t available, is there a specific reason?From my research, it seems possible to achieve this using integrations with Make and external APIs, but a native solution would be much simpler.Here are the solutions I’m considering:Airtable / Make / Twilio or Messagebird: call reminders and SMS sending.Airtable / Make / Gmail / ChatGPT: automated email generation and sending (with manual validation) + email archiving.Airtable / Make / MailChimp or Klaviyo: email marketing campaigns.Looking forward to your
Hello everyone,I’m encountering an issue when trying to use the Sync API to upload a CSV file to Airtable. Every time I send my request, I receive the following error message:“Column names must be non-empty strings.”I’ve carefully checked my CSV file, and everything seems fine. The column headers are properly defined, and there are no empty values. What’s more confusing is that when I manually import the same CSV file into Airtable through the UI, it works perfectly without any errors.I have double-checked that:• The CSV file is correctly formatted.• Column headers are valid and properly named.• There are no empty column names.• The same file works fine when imported manually via the UI.Has anyone else faced this issue with the Sync API? Is there a specific requirement for the column headers when using this API that differs from the manual import?Code example :const res = await fetch(AIRTABLE_ENDPOINT, {method: "POST",headers: {"Content-Type": "text/csv",Authorization: `Bearer ${AIRTAB
Hello Team,I'm trying to connect my Voiceflow Project with Airtable, but I received a "can't send request," "Make sure the domain is publicly available or try a different URL". I tried to enable the API public access but I don't know to do that. Any help would be greatly appreciated. Thanks. Regards,louise
The Template M Query provided by Airtable at this link which integrates Airtable with Power BI, does not allow scheduling refreshes in Power BI:Instead of allowing you to schedule the refresh, Power BI shows this message warning that the "dataset includes a dynamic data source."Previously, the other Template M Query, with the past API_KEY, allowed to schedule refreshes. Therefore, I think there has to be a way to ensure scheduling with the recent personal_access_token.Has anyone had this problem as well? If so, does anyone know how to change the template to make it work?
Refresh Token logic intermittently failsWe're experiencing intermittent issues with the OAuth refresh token flow. While our initial token fetch consistently works (200 response from `/oauth2/v1/token`), some users encounter a 400 error during token refresh with:{"error": "invalid_grant","error_description": "Invalid token."}The peculiar aspect is that this only affects some users while working perfectly for others. The initial token exchange works flawlessly in all cases.I've compared our implementation with the official Airtable example repo and can't seem to find any breaking differences.Has anyone encountered similar issues or can suggest specific areas to investigate? We're particularly interested in understanding what could cause this intermittent behavior.Technical details of our implementation are available if needed.def refresh_airtable_token(token_type, refresh_token): """ Refresh the Airtable API token. """ token_url = "https://airtable.com/oauth2/v1/token" client_id = OAUT
API for searching in multiple basesHi community, My company developed an API to search multiple databases, we used Airtable for a talent pipeline for the company's recruiting team, and we found ourselves with the limit of 50,000 records (teams plan).Instead of upgrading the plan, we developed this solution. We divide our base by years and create several bases. And with this new program, we can search through all the databases quickly and effectively.I share screenshot In the API, you can search multiple fields (in the example, we search through name and Linkedin link), and then, it shows in which base the API found the specific record (Of course, you can choose which fields you want to display.)IF YOU ARE SHORT ON SPACE, YOU DO NOT NEED TO BUY A HIGHER PLAN, JUST CREATE MORE BASESThanks!Lucas
HeyI am using Postman to make an API call from Airtable to list all 14,000 of my records to store in a variable and pass onto voiceflow.This is my pre- request script: function getAllRecords() {const url = 'https://api.airtable.com/v0/baseID/tableID';let records = [];// First requestrequestAirtable(url, null, function(initial_response) {records.push(...initial_response.records);let offset = initial_response.offset;// Handle pagination recursivelyfunction fetchNextPage(offset) {if (!offset) {console.log(`✅ Data Fetch Complete! Total records: ${records.length}`);pm.environment.set("voiceflow_data", JSON.stringify({ fields: records }));return;}requestAirtable(url, offset, function(response) {records.push(...response.records);fetchNextPage(response.offset);});}fetchNextPage(offset);});}function requestAirtable(url, offset, callback) {const api_key = pm.environment.get("AIRTABLE_API_KEY"); // Securely store API keyif (offset) {url += `?offset=${offset}`;}const options = {url: url
Hello!I'm using the API extensively in powersave to create and update records.New records is created via `POST` and the attachment array gets processed just fine.But then, when a record is updated via `PATCH` the previous attachment seem to get partially corrupted. They can still be opened and viewed in full size but none of the thumbnail are available.I tried to send back the attachments in various formats:{ id }{ id, fileName, url }{ id: fileName }It seems to happen in all cases.Is there any way I can prevent this? Thanks a lot!
When you turn on the Rich Text Formatting option in a Long Text Field, you are limited in the Page Design Block. First of all, it is not possible to change the typefont, neither is it possible to change the font size. It is understandable that you cannot make the text bold, italic and so on, because that is what you do in the field itself. But, the font size and fonttype can not be change in the field itself. So, what is it gonna be: add features in the Long Field, or add them in the Block area? Regards, André
All this goofy 3rd party stuff to do a front end why doesn’t Airtable just buy Softr and be done with it? A unified cooment view like Slack would be good as well.
Hello, I'm having an issue with getting anything back when sending a post request.Using Voiceflow to integrate into airtable.comThe objective is for a patient/customer to be able to change their email and have the bot do it for them if the bot recognized that their email was different but first name, last name, number, etc were the same.There is no error, I'm getting a 200 back but the response is [] or emptyThe fields are filled out and I checked capitalizationScreenshots are below, any help would be appreciated.I checked the base ID and table for the API call and its correctI've tried just using a filterbyformula in a get request and it does the same thing and returns a ok 200 and empty response.
Hi everyone (reposting to correct category)I've created seemingly simple Zapier automations (zap) to bring subscription data into Airtable by creating/updating records in a Base table. While Zapier indicates success sending data to Airtable, no data shows up in Airtable base and table. I've been troubleshooting without success, so seeks suggestions here. Any thoughts are welcome!Zapier is connected to Airtable. I know this because I have another zap that works well with no issues to send the same source data to a different Airtable table in the same base. Also, I've confirmed that Zapier is "on" as a third-party app in Airtable Integrations.I have paid subscriptions to both platforms. In Zapier, I have not reached my task or zap limits, so that's not the issue. In building the zap in Zapier, the appropriate Base, Table, and fields in Airtable are available to select. Zap History shows success every single time. I use the Find Record in Airtable action to first seek for existing re
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.