Need development and API help? Ask your questions here!
Recently active
I am pretty versed in the “Modified Time” field type, and its options to watch certain fields, automation triggers set to watch certain fields, and I use filterByFormula with IS_AFTER({Modified}, “2020-12-18 9:00 AM”), etc to return recently modified records in my API applications. So I know how to retrieve whole records with at least one field that has been modified. But what I can’t figure out is if there is a way, in a scripting app or automation script block, to select only the fields from a record that have been modified since a certain date/time, for example to then PATCH just those fields through to another service… The only way I can think of to automate this is to literally make a separate automation watching each field separately and patch them one at a time… I don’t want to do this for several reasons. Rather not PUT the whole thing if I don’t have to. Any ideas? Thanks.
Hi, I’m using block sdk to build a custom app. But I meet an error after I install an es6 modules( @antv/x6 ) Bundle Error: 'import' and 'export' may appear only with 'sourceType: module' I tried to add a .babelrc file to add prset-env but don’t work. what should i do to solve this problem?
Hi there, I’ve made a custom app which is released and working great. The only problem is that when I filter the data in the view, it doesn’t always update the chart - I have to go to the App and click “Reload App”. This is how I’m getting the data: const base = useBase(); const table = base.getTableByName(‘securities’); const view = table.getViewByName(‘Home’); const queryResult = view.selectRecords(); const records = useRecords(queryResult); const viewport = useViewport();
Hello everyone, Sometimes I feel the need to print my Airtable table records physically on paper (A4, A5 or even A6), while controlling every formatting and styling aspect (i.e; multiple records on 1 page, formatted as a table X by Y, or a list, controlling the font attributes, the border attributes, rounded corners, background colours,…). Printing possibilities by default in Airtable are a little to basic. I’m on the Airtable free plan, but even the Page Designer App won’t stretch that far, I guess… So I think the only way to get it exactly as I want is, is to go through the API, extract the records I need and position them and style them. But how do I start with the API ? Which tools do I really need ? I read something about airtable.js and also node.js and npm…all very new to me. I’m not afraid to dive in new technology, but I need a starting point. My data in Airtable is mainly personal inventory, like movies, books, games,… There is no need to build a public website, it is only fo
I’m trying to send data to Zapier’s webhook but it doesn’t seem to go through every single time. I’m a coding newbie, is there some sort of naive mistake I’m making below? let result = new XMLHttpRequest(); let webhookURL = "https://hooks.zapier.com/hooks/catch/XXXXXX/YYYYY/"; let data = { "id" : record.id, "Format" : {name: record.getCellValueAsString("Format")} }; await result.open("POST", webhookURL, true); await result.setRequestHeader('Content-type','application/x-www-form-urlencoded'); await result.send(JSON.stringify(data)); I’ve noticed that it seems to make a difference if I have this command near the top of my script vs near the bottom.
We’re using both Airtable Apps (Blocks) as well as the Airtable API. Is there any way to get the user API key from a block? That way we avoid forcing the user to look for their API key and paste it into our app. I’m hoping for something like this: import {session} from '@airtable/blocks'; if (session.currentUser !== null) { console.log("The current user's API key is", session.currentUser.apiKey); }
Hey folks, Fairly new to Airtable and javascript ( my background is database languages ). I’m trying to modify the Mark Duplicate script that is an example. I’m using it as part of an automation from a google sheet. Rather than marking the duplicates I’d like to increment a counter by one on the “master” record already in the base Take some of the data from a field called “Notes” on the new record and add it to the “Notes” field on the “master” record Then ignore the new record as it’s not required. If anyone can give me any pointers that would help me better get to grips with the syntax it would be massively appreciated. Thanks!
I’m not an experienced coder, but I’ve written enough VBA & Python to have a degree of comfort with Java Script and write some basic routines. That said, my greatest degree of confusion here is referencing specific fields, records, cells, tables, etc. While loading the bases seems straightforward & part of every example script, documentation seems to drop off from there. Did I miss something? Can someone point me to a cheat-sheet with more examples like: .record.getCellValueAsString .getCellValueAsString The examples provided, “Loading records, Currency converter, Running total, Mark duplicate, Summarize linked records” are helpful, but more of these would be better. The user forum examples are a little scattered and specific. Probably, like most people using Airtable, my scripting issues are pretty basic. For example, one of the things I’m trying to do is just search a column for the highest value and enter the next highest value in the same column triggered by the prima
Hey ! I’m wondering if it’s possible to: Duplicate an existing base Invite an editor Everything through the API. Thanks
Is it possible to get all the bases for a user with the API key ? I’ve seen it in integromat i.e. but i don’t know if they have an special agreement because i cannot find this information. Thanks
Hi all! I have a Javascript integration question I apologize if this is basic, I am quite new here. I have created a Discord bot that is storing game win rate stats using an Airtable base. Each user on Discord has a unique ID which I am storing in the first column of the table. I have a function on my bot that allows users to add themselves to the base by creating an entry with their Discord ID and with their number of games played and won. I don’t want to have two records for the same user, however, so I want to add a logical check that searches my base to see if there is already a record wherein the discordID column matches the ID of the user attempting to be added to the base. Basically, if my discordID is 222, I want to search my base for entries where the discordID is 222, and if more than 0 appear then I want to NOT add myself, but if 0 results are returned then I DO want to add myself. I have tried doing this below, but it doesn’t seem to be working as expected (i.e. my console
Is it possible to update the lookup filed on a linked table via the API? I have a projects table. An a people table. O the projects table I have a lookup field that grabs the first name from the people table. Using the API, would I be able to change the name by simply updating the lookup field on the projects table? Thank you!
I’ve noticed that when using .loadCSSFromString() the frontend renders multiple duplicates of the same <style>/<style> element in the DOM body. Is there a way around this that I’m missing? In the example below, .loadCSSFromString() is placed at top-level and not within a loop.
Maryland Center for Computing Education (MCCE) strives to increase access, equity, and computing education efficiency. Our approach builds upon the progress of CS4ALL. We have implemented an AirTable-based lesson repository as a resource for elementary school teachers to implement computer science instruction in their classrooms. We are looking for a developer to partner with us to upgrade this system. This work will entail API development work to extend the functionality of the system. If you are interested, reply to the post to share with us how to contact you, and we will send specifications for you to consider.
Hello there, We are actually using Airtable for real estate reporting. Actually we are sending raw reports from airtable to our clients. The design and ergonomics are really poor for a common user so we looked for other solutions. I didn’t found any interesting application to connect with zapier for now but I finally discovered page designer. Page designer allowed me to reorganize datas but it’s hard to make something really clean with it. I also have a big problem with page designer because it’s not dynamic. I mean, we have many datas and their size can change and some of them can be filled or not depending of the report. Our needs also includes photos (the number can vary) and clickage links. So, using airtable can leave me with blank space of different size which is not really clean for our clients… Can you suggest me a solution that could solve our problems and which is free or not too expensive ? Thanks for your answers.
Hi Guys, I’m trying to find a way to see live data in my web application/mobile hybrid application, is there a way to do this? I don’t see any information regarding live data in the docs. What I want to implement is that when a new record is added or updated in airtable, the web app somehow detects the change in the airtable data and update the view. I saw that we can use airtable.js and airtable.browser.js if you’re using it in the browser, but what are the differences? cannot find anything related to airtable.browser.js, anyway, going back to the main problem, is there a way to display the data as live as possible?
Got a newbie question for you. I’ve got 2 tables linked together: Viewers and Movies, through a field on Movies table called, “Fans”. I’m trying to look up the viewer of a movie and change their status to “Favorite” if it is currently “Watched”. let viewer = record.getCellValue("Viewers"); if {name: viewer[0].getCellValueAsString('Status')} == "Watched" { updateRecordAsync(writer[0], { 'Status': {name: 'Favorite'}; }) } The error gives me an unexpected token ‘{’, which I suspect isn’t the real problem. Any ideas here? Would love to get my first script block running!
I am looking for suggestions to change my script so that it does not time out. My script is below. Basically when a new record enters a view on a Table A (‘Verifier Bodies’), I want to update another Table B (‘Technical Comments for VB’) by linking all the records in that view in Table A to records in the view on Table B. The script below ‘works’, but is now timing out due to the number of records. I think I need to make a change so that just the new record is added to the field ‘Verifier Body List’ in Table B without overwriting the already linked records. How would I go about that? Any help is appreciated. let TBTable = base.getTable(“Technical Comments for VB”); let TBView = TBTable.getView(‘General Share for VB’) let TBQuery = await TBView.selectRecordsAsync(); let TBRecord = TBQuery.records; let VBTable = base.getTable(“Verifier Bodies”); let VBView = VBTable.getView(‘List of SLCP for Higg Co.’) let VBQuery = await VBView.selectRecordsAsync(); let VBRecords = VBQuery.records
Hello all and thanks in advance for your help! I’m trying to pull records into my base from this API (https://clarisa.cgiar.org/swagger/generalListReference.html#section1-item4), but am stuck on exactly where to start. I’ve tried modifying other scripts and using the script app, also tried data fetcher. Any tips on how to get started would be appreciated.
I am running into some trouble when using the API to return entries which contain a user’s role, and in my case each user has multiple roles (ex. pitcher, left_fielder). Each user’s role is stored using comma separated values in a separate Airtable table (i.e. a “multiple select” table). I am currently using this filterByFormula call via API: FIND(“USER_ROLES”, role) > 0 It only seems to return results if the user has one role [FIND(“pitcher”, role) > 0], but fails when searching multiple roles [FIND(“pitcher, left_fielder”, role) > 0]. There’s got to be a way to have the API return records that “contain” one or all of the multiple select fields. Does anyone know how I can return results using a string of user roles via one filterByFormula call?
// updates the Deal table let tDeals = base.getTable(‘Deals’); let qDeals = await tDeals.selectRecordsAsync(); for (let rDeals of qDeals.records){ let d= getDistanceFromLatLonInKm(rDeals.getCellValue(‘Latitide’),rDeals.getCellValue(‘Longitude’),rDeals.getCellValue(‘BLa’),rDeals.getCellValue(‘BLong’)); await tDeals.updateRecordAsync(rDeals.id, {‘Distance’ : d}) } // distance between 2 given points (in miles) function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) { var R = 3958.75586579; // Radius of the earth in miles var dLat = deg2rad(lat2-lat1); // deg2rad below var dLon = deg2rad(lon2-lon1); var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon/2) * Math.sin(dLon/2) ; var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var d = R * c; // Distance in miles return d; } function deg2rad(deg) { return deg * (Math.PI/180) }
I’m looking to pull data from an external API with different parameters. These parameters are coming from Typeform survey responses integrated to Airtable. Is there a way to execute the Get request by inputting the parameters from Airtable and then retrieving the results back into Airtable?
Hello amazing community! We pull data from AT into our WP website. We have added a hyperlink to a rich text enabled Long Text field. When the info is pulled into our website, the hyperlink is converted to a “****” snapshot here: Any thoughts? Thank you! Katherine
Hi, I’m developing an App for android and I want to consult the information on my base but the app will be used for many users (about 1000) so my question is if the rate limit is by IP or how it works? can I use airTable for this porpuse ? Thanks!
Hi, I have a table and form associated with it. When ever a user fills a form a row is created in the table. I have created a field Point of Contact(single select field)(4 no.s). I am looking at automation or scripts which can work as when ever new record/row ois created in the table POC(out of 4 any one) is assigned cyclic for each row. Please help in automation or script.
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.