Need development and API help? Ask your questions here!
Recently active
I have created an App for myself but would like to understand what would be involved in productising including enablingSecure and data isolated CRUD access to most tables through the Interfaces (Portal?) Common Read only access to some tables Multi level subscriptions Automatic monthly paymentsThanks for any assistance with this matter.
I'm trying to use a web app deployed via Google Apps Script inside Airtable Extensions and Automations by selecting "Run a script." However, I'm encountering the following error:Response status was 302 'Moved Temporarily' but redirect mode was set to 'error'Despite this error, the action triggered by the request is actually executed successfully.I tested the same request using Thunderclient and did not encounter the error — everything worked as expected.Searching the community, I found a workaround suggesting the creation of a webhook to handle the requests. I implemented this through Zapier, and using the webhook, the requests now run successfully within Airtable (both in Extensions and Automations).However, this setup isn't ideal for me because it adds an unnecessary (and paid) middle step just to retrieve a simple success response from my Apps Script API.My questions: Is there a way to configure Airtable to prevent or handle this 302 error directly? Or, is there a better solution
Is there a preferred way to escape data inside formulas when using the API? For example if we pass a formula into an API call like '{name} = ' + name where “name” is a variable that might contain user-generated inputs, then what’s the best way to escape the “name” variable? The best I can find is to escape quotes? Using an escape character in a formula? But is there a more standard library (I happen to be using Python) or escaping approach that can be applied (like would I use the csv or json module)? Or is this documented somewhere?
NOTE I originally wrote this in a rush hoping that the information provided here would be sufficient to start a conversation. It turned out it was not. Please refer to this comment below for a better explanation (and A DEMO) of the issue: Standard way to prevent formula injections when using AirTable `select` and `filterByFormula` - #15 by Luciano_Mammino Hello, When using your APIs to get data dynamically from a table, is there any secure way to handle formulas that need to contain user input data? How can we avoid a user trying to alter the formula by crafting an injection (like a SQL injection but for your formula language)? I couldn’t find anything in the docs, nor any utility in your (JavaScript) SDK… So far I had to come up with my own escape function… In case you need an example, this is my formula: {code} = 'someCodePassedByUser' If the user passes the following code ' >= 0 & ' I end up with {code} = '' >= 0 & '' which is always TRUE! Considering that injections
Hi There Hope I can get some good info on my issue.I have a client that manages their operations on airtable (We helped set it up).They are now quoting and invoicing from airtable using third party integrations. We are also collecting deposits via a 'mini extension' extension with a stripe integration. The Quote sent to the client has a stripe payment link which is a prefilled payment window. It has the clients name and the amount to be payed. When the payment is made the second part of the automation kicks in. A field in the airtable record gets marked paid. This allows us to easily match bank payments to clients and move the project into the scheduling process. It saves a lot of time.Our client company now wants to set up a payment automation using API/webhooks for another well known payment's gateway provider. The provider has the tech in place but I wanted to know if their are any airtable specialists that could bring specific know how to help create a similar automation?Regar
As in archived copy of this thread :Re: Automations error (but not on Block): Response status was 302 'Moved Temporarily' but redirect mode was set to 'error' Can someone in Airtable update me about the issue of allowing redirects in API/fetch requests in code in automations ? This is needed urgently , so that we can connect airtable to google sheets. (as i create an API in google apps script) so the behaviour of google apps script is, it redirects the requests to another url when you pass a parameter into itself.example : if you send a get request to in automation: https://script.google.com/macros/s/*******-g/execgoogle redirects the paramteres into :https://script.googleusercontent.com/macros/echo?user_content_key=*******thus, when i set an automation in when a data updates in airtables scripting section, i get this error: I dont want to use any 3rd party services to solve this problem. Thanks
Hello everyone! We build some Scripts with the Airtable Scripting extension and we’d like to trigger them externally via Make.com / API.Is there any way to achieve this? Airtable Automations are not an option because we are at the 50 Automation limits already (why would you make this limit so low??) Any help would be greatly appreciated!
HelloApologies if this has been asked before but I can’t find a solution that works. I have a base where all times should be for UK/London (it is scheduling of spaces in a building), wherever in the world I am I want any date or time entered to be UK time. Thankfully Airtable have now fixed this in the normal UI, but I am struggling to find a way of achieving this for dates entered via a script in a script block (not an automation) - I have an input.text field and can parse the date and time, but currently that time will always be based on the time zone of my browser, not the base. Does anyone know of a good bit of code to sort this out - I wonder if I should use offset. but I worry this would not work for DST?
Hello, Airtable friends! I have a table that has several file attachment columns and many rows. One of my workflows is go through the table and download all attachments for certain rows. It’s been a bit time-consuming to go download the files one by one, so I’m wondering if there’s a way to automate it.Does anyone know of an extension that lets you download all files attached to a given record? (My team and I are flexible on whether that’s a ZIP file, multiple downloads, etc.) If not, does it seem feasible to write a custom block for that? Would greatly appreciate any perspectives on this!
Hello! I’m setting up a community coworking space and would like to have a simple tap in/tap out system so we can log who’s visiting the space, how long folks are staying, and how the space is being used. My idea is to use NFC tags with unique webhook payload information stuck on cards that when tapped on a reader near the entrance, a webhook is fired into Airtable with the unique information about that tag. Within airtable we’d then set it to log the taps and workout if someone is ‘in’ or ‘out’ (with the ability to override of course). My questions:Does this seem like the best approach or would anyone suggest a different way to go about it? I’ve searched the forums and aside from some discussion around RFID I haven’t seen anyone talk about setting things up this way. If so, what’s the best way to configure the webhook to fire when the NFC tag is tapped? We’ll be using an office PC with an external reader, and I’m not sure what the best route is to go from ‘tap’ to ‘webhook fired’.Any
I’m wondering if its possible to create a file, encode it and then add it as an attachment. Since the attachment field needs a url the only way for me to do this would be to make an api call from within the script to store the file in an AWS s3 bucket, return that url and then attach. This seems like a huge work around. For now I can just use the raw text field in the text field, if the large text file fits, but for formated xlx files for example this won’t work. Seems like a long workaround just to output a file, is there another way to do this?
The eco system ive been introduced to utilises airtable as a referencing and task hub for projects. The base data is integrated with Softr where records are created using a tiered importance methodology.Can someone please advise me on how to do the below without adding coding or other platforms for integrations to enable?When a record is created in Softr a. all fields must be filled. b. records appear in Airtable with a round robin assigned workflor for relevent teams c. each time a record is completed by the necessary team, the workflow pushes the record to the following team Possibly integrate slack as an additional layer to communicate internally as well as link to input and update the above Create a dashboard on progress for each user and user group to track progress at micro and macro level of each projectAll advice is greatly welcome! I have a very short window of time for this.I have checked the existing automations in both Airtable and Softr without success as yet
I try to create CSV backup exports of all my bases as often as I remember. However, going through everything manually is a lot of work and leads to “not doing it” more often than not. I wish there was a way to automate this important backup process. Can this be done through an outside service maybe? Thanks in advance!
I’m getting the following error when I get or create the data from airtable in my next.js project.AirtableError { error: 'NOT_AUTHORIZED', message: 'You are not authorized to perform this operation', statusCode: 403} I’m using airtable npm module for integration.I’ve added all required scopes already but not sure why I am getting that error.Can anyone help me for that? Thanks
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
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.