Need development and API help? Ask your questions here!
Recently active
The Airtable OAuth specification says that authorization request responses will return the same code_challenge that was included in the original request.These docs also say that this value must be verified: The code_challenge parameter you passed in the authorization request. You must verify the code_challenge variable is associated with a code_verifier you generated.From what I understand of the PKCE flow, Airtable's backend (not the client integration) is responsible for validating the code_verifier included in the token creation request from the client. Why does the documentation call for the integration to check that authorization response returns the same code_challenge that included in the request?Also, the official Airtable example implementation does not perform this check: https://github.com/Airtable/oauth-example/blob/a714e68c2610e3249063b3d92faf064bf4c15188/index.js#L94-L137.Any ideas? TYIA!
Hi everyone ! I am trying to authenticate a request using Basic Auth. I then need to base64-encode my logins. (could encode them manually and then insert but would prefer to keep that logic in the code) I didn’t found how to achieve this “natively” without rewriting the entire encoding function. btoa() does not seems to work :confused: Can anyone help me on this ? Thanks
I've been using Pabbly with Airtable for a long time, suddenly today I'm having to update the connection data. No problem, I have done that before. Today, I get this message that pops up while connecting in the Pabbly dashboard. I assume the message is coming from Airtable - “invalid_client”My airtable account just renewed and there was as issue, but that is settled and my account is paid. I created a support ticket, but I hoped a user might understand what is happening.
I have a strange one. There is a single line text field in my table definition (‘active’), but it’s not showing up in the API doc for that table, and the API throws an error when including that field in the get requested. I’ve deleted and re-added the field to no avail.
Any ideas on how to connect Airtable to Replit? TIA
I have an object that I output from another script using the Output.Set(key: value) method. The value that I’m passing is an array of json objects. It seems that there are a lot of objects to transform the object but I would prefer to just pass the object to my script to iterate over the object and use dot notation to get the values that I would like. I don’t see anything that just lets me keep the object as is and pass it through input.config only transforms or operations like length? Is there no way to pass an array or object??
I was looking at the API reference... why is there no method to retrieve an element by a field that is defined as PK? That … is basic DB functionality. Currently the only way to use GET (HTTP) to retrieve a record, is with a value no one knows and that can only be calculated via the RECORD_ID() function (... after you already have the record!)To me this .. is so weird haha :-)Is it me? What I would expect is that Airtable allows via the API to query the table with AT LEAST the PK values.
Hey all I am hoping you all can help point me in the right direction. I am looking at just using HTTP calls for updating parts of airtable for us. However, I am confused by how to update fields like single select and multi select. Example: I have a table that has a field of singleselect, and all I want to do is update the single select to have an additional choice. what url would I need to use to update the field? An example would help
I don’t see anything anywhere that says it can, however, I wonder if someone has figured it out.
Does anyone know of a way to create an automation where when a new recording is created, it uses the GPT chat API as the first column for text input and the second column to get the output response from the GPT chat? For example, column 1 (input) = Hi, how are you? and column 2 (response) = Hi, I'm doing great!The native GPT chat in Airtable is quite expensive.
Hello everybody, Here is my situation : I have a table of CONTACT(1900 records) and a table of COMPANY (800 records), I have all ready set a link in between them. Now I would like to insert a junction table : JOB.If i use the junction script it will create all the link possible (1520000 records). Is it possible to add a condition in it so the script will create the record in the JOB table only when a link already existe between CONTACT and COMPANY?Thank very muchPlatane
hi im really struggling with something that i think should be easy but is very challenging to get right. I’ve been tinkering with scripts, automations and apps now to basically just manage one field in one of my tables. I am creating a scope of work configurator that has a list of components in one table and in another table i want to create records for each distinct project that I create. What i would like to happen is to have a checkbox in the components table and then run a script to fire at my command, to then have a chosen record in the projects table to link to all checked records and then pull in the data it has to run a simple calculation/formula on to get a result that totals an estimate for the amount of hours it would take to complete all the checked items. I need each project to be distinct so i can continue to update its unique record based on what’s checked in my script/app without having to create new tables or new bases for each distinct project. I can make the calculat
Hello,I don’t have a lot of scripting experience but feel like this one should be simple. However, I can not find my error; it’s probably something super simple and I’m just not seeing it.Here are the two simple tables I have: So in the Day table, when the Week linked field is missing, I want a script to automatically update the field. Here is my script: The error is: I know the weekID is correct because I can paste the result in the Week field and it works but unfortunately the script can not do it. Thanks in advance, I hope this is easy one!
Hi Everyone - I am very new to API development and coding all together. I need some help with a script I am trying to implement. I keep getting this error thrown Error: Request parameters failed validation. and I have no idea why. Any help is greatly appreciated. // Get the table and the newly created recordlet table = base.getTable('Table Name'); let recordId = input.config().recordId; // The ID of the newly created record let record = await table.selectRecordAsync('recordId'); // List of users to assign randomlyconst users = [' User1 ', ' User2 ', ' User3 '];// Pick a random userlet randomUser = users[Math.floor(Math.random() * users.length)]; // Update the Assignee field with the selected userawait table.updateRecordAsync( 'recordId', { 'Assignee': randomUser});
Hello,Beginner here working on a MVP. Is it possible to create an interface with 6-8 photo carousels each with a drop down of filters? Or is that something beyond a beginner? Thanks!
Hello, I am trying to get a field named “Statsig Url” in a table named Experiments (this is a field with the url type). (My intent is to get the record id based on the value of the Statsig Url field). A filter will be applied in the url. let table = base.getTable("Experiments");console.table( await table.selectRecordsAsync( {"fields" : ["Experiment Name", "StatSig Link"]}));console.table( await table.selectRecordsAsync( {"fields" : table.fields}));I have tried with different approaches (testing other fields...). Each time I only get the primary key.
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
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.