Need development and API help? Ask your questions here!
Recently active
Hi All, I am using script to assign a unique ID to a household. Part of doing this includes counting the number of records that currently exist in the table that the unique ID will be assigned to. I am struggling to obtain this count. I created a column in the table using the Autonumber function that automatically assigns a number to a new record - in an ascending manner. I then us the input.config() method to try obtain this value of the most recently created record. But I get an undefined return from this. Any ideas on another way to do this? Thanks in advance. Cheers, Ryan.
I am working with the Airtable API in GoLang and I am using this client. I have 150 records. I am trying to fetch the first 50, then next 50 and so on. I do this by sending the following HTTP request (with the help of the client): /v0/appXXXXXXX/tblXXXXXXXcellFormat=string&offset=50&pageSize=50&sort%5B0%5D%5Bdirection%5D=asc&sort%5B0%5D%5Bfield%5D=Name&timeZone=Europe%2FLondo n&userLocale=en-gb Note the &offset=50. When I send this request I get the following error: “error”:{“type”:“INVALID_OFFSET_VALUE”,“message”:“The value of offset 50 is invalid” I have tried removing the offset parameter and it gets me the first 50, but how am I supposed to get the next 50! Below is my Go code using Mehanizm’s Client:
Hi! I have created an automation that runs each time a record of certain field is updated, in the automation I update some of the other records of the same field through a script . Is there a way I can make sure the automation won’t run again if the records are being changed from the script and not by a user in the UI ? Thanks for any help! Yaniv
Hi all, after some research I have found the solution to my needs via @Kamille_Parks’ no conflict airtable script. However, I would like to show the executing script as a client-facing page (the same way we would use a basic form) without having to show the database. Is there a way to do that? *see on the screenshot, the script portion.
hello. i’ve recently been told by Airtable Support that Permission for Groups / Users are not copied by default when Duplicating a Base It is expected behavior that the new base doesn’t have the same permissions as before so that nothing is unintentionally shared. as a result, when i Duplicate a Base, most Tables and many Fields are unusable, since they are still locked with Permissions … it’s just that no User or Group has those Permissions. so it requires a manual removal of the Permissions from every Field & Table to which they had been applied. we can continue using your excellent security features if we can build a script using your Enterprise API which can detect & remove those Permissions. your API documentation doesn’t describe the ‘Get Table’ endpoint (which would be the first place i would think to start). there also seem to be a variety of ?include= parameters, but i’m not sure what the range of values is, nor the shape of the responses it there a more complete
Hi, Airtable community! I’m writing a script in the Automations tab. My first trigger creates a new record called newEntityId. I want to link that newEntityId record to another record I’ve created in the script. My problem is that you can only get the record ID from the newly created record and the field type I want to link to is “Link to another record” which requires the object/record type. I’ve made a solution that works but throws an error. If the error could be solved, that would be appreciated! new record: error message: Code: let inputConfig = input.config(); let tasksTable = base.getTable("Tasks"); let taskQuery = await tasksTable.selectRecordsAsync(); let tasksrecords = taskQuery.records let tasksTemplate = base.getTable("Tasks Template"); let templateQuery = await tasksTemplate.selectRecordsAsync(); let tasksTemplateRecords = templateQuery.records; let taskTemplateLength = templateQuery.records.length; //Create taskTemplate.length records in Tasks field AND add all ta
Hi, i’ve implemented Levenstein function in my script to compare 2 tables of names from different sources. For some matches where match ratio is not very high, I added step, where user can choose from several options with maximum ratio (using await input.buttonsAsync). Since tables contain thousands records, one match operation lasts for some seconds. Is there a way to continue script execution (at least for records, that doesn’t require to interact with user) while user thinks which option to choose? upd: I read thread with function again and understand how to accomplish my task - use links instead of async input and gather them in some table where user selects while script runs in other tab. but still I’m curious - is the subj doable with “advanced” part of js? generators/iterators? or promises/async? I read these topics long time ago when my JS knowledge was not enough to understand. if you can point me in the rigth direction, thanks in advance.
Hi, I’m newbe at using “Scripting Extension” and I had an issue with using this extension. Let’s jump to the point. Here I have 1 table that I make as “Student Attendance”. in that table I have a grid view and calendar, so what I am trying to do is connect the grid view with the calendar. So for example: in the grid view section, I have these (Field/Column) “Name, Start Date, End Date and Select days in a week.” So the problem I can’t solve is I can’t find a way to show already selected days in grid view to the calendar. I want it like auto-generate date in calendar by “selected days in a week”
Hello, I created a few simple databases in Airtable and wanted to test the access to them with Power BI. I tried this simple query with Postman: https://api.airtable.com/v0/<BASE-ID>/<TABLE-id>?api_key=XXXX and it works great and instantaneously. But the same URL in PowerQuery like this: Json.Document(Web.Contents("https://api.airtable.com/v0/<BASE-ID>/<TABLE-id>?api_key=XXXX")) is not doing anything. Just trying to establish a connection or I don’t know. It doesn’t give any error message. I also have tried this guide: support.airtable.com Sending Airtable Data to Microsoft Power BI & Power Query | Airtable Support This article outlines a solution to efficiently and automatically bring information from your Airtable base into Microsoft Power BI and... and it is also not working and not giving any error message.
Would be super helpful to get base creation date via API. Any idea how one could get it ? Or any chance this can be added into the API ? At Softr we integrate with Airtable and need to enable users to select the base that has been copied over. In general having a bit better Meta API with write capabilities would be super helpful. E.g. We can create a google sheet document but can’t create a base or copy a base programatically. Thanks!
Does anyone know how to set up parameters to match the curl example in docs for air table with PyCURL or Request package? Could you give an example.
Previously I’m using multiselect field from the current table. However, I am trying to automate by pulling the multiselect field from the LOOKUP. But when I want to run the script, I am unable to do so. Here is the structure of the base My current script let templateName = r.getCellValue(s.tempField.name); console.log(templateName) let monthName = r.getCellValue(s.monthField.name); templateName.forEach(item => console.log(`${monthName}; ${item.name}`)); let combinedArray = templateName.map(item => `${monthName}; ${item.name}`); console.log(combinedArray); output.table(combinedArray); How to modify this script? Thanks!
Hi, I would to retrieve an array of all single select options from the api. but i dont know if its stored anywhere… Is it possible?
Hi team, I am using the scripting block to add a new single select option to a bunch of fields at once. Is there any way to specify the color of the item? Currently they all seem to be adding as grey by default. Thanks!
Hello all, How do I add time to a Date field using the scripting block in automations? I know about DATEADD() in formula fields but I’m trying to iterate through a loop. I want to automatically create an indeterminate number of new records where each record’s Date field is the next day (19th, 20th, 21st, etc) in other words, n = n + 1day. Is there some way I can do this in my script’s for loop? Or some clever way to do it with formula fields? Thanks,
I’m trying to insert a new record into a table that has a link field (single select). The value I’m trying to insert matches exactly with the value in the linked table but I’m getting a 422 error. To do this do I need to insert the record ID in the linked table? I don’t have this ID available in my external application.
Hello, I have a table with about 1700 records. I’m pulling a couple of records and doing some math on all the rows, then updating the result in a new record. The bulk update code I’m using is waaaay faster than a single row update, but it’s still taking about 45-60 seconds. That’s too slow for me to run an automation, which has a 30s timeout. Is the following code inefficient? while(updatedRecords.length){ await table.updateRecordsAsync(updatedRecords.splice(0,50)); } Regards, Scott
Hi everyone, I’m new to Airtable and I would need to obtain via api/sdk the possible values that a field of type single select has. Since I am implementing a form and I would like to get the values dynamically. This is possible? Thank you very much!
Hello, the default Delete duplicates extension is awesome to remove with one click all duplicated records at once but have a little problem, its removing new records and keep first one, how i can invert the process and keep the last record instead of forst ? remove then all old records and not new. here is the default code : let settings = input.config({ title: 'Delete duplicates', description: `This script will delete duplicate records in a given table according to the value of two input fields. Duplicate records are detected when they contain the same cell value for each identifying field. For any two records that are considered duplicates, it will use a third comparison field to determine which of the two records should be deleted.`, items: [ input.config.table('table', { label: 'Table' }), input.config.field('firstIdField', { parentTable: 'table', label: 'First identifying field', }), input.config.field('secondIdFi
I have some questions about syncing a Google calendar into Airtable. When I set up the sync, it asks for a date range sync–both a start date and an end date. Does this mean that events after the end date will no longer sync? How far out can I push that end date? Is there a way to sync a calendar in perpetuity?
I was both excited and a little anxious about the recent Quadrant recognition for “collaborative work management”. I have no insider standing with Airtable, but I do know that it’s not uncommon for technology companies to pay large fees to be “recognized”. Whenever I see these bold prognostications, I get a little fidgety because they often come with lofty assertions of perfection like this. "This report acknowledges the challenges that arise from too many ‘collaboration tools,’ and addresses the need to connect work so “teams can rapidly uncover faults or errors that would otherwise go unnoticed.” Gartner predicts that “by 2023, organizations that promote data sharing will outperform their peers on most business value metrics”.’* Yet, trust is key—identifying trusted data and locating trusted data sources remain a challenge. I’m excited about this report because I fundamentally agree with the premise - uncovering faults and errors while also elevating trust in data are the corner
Hello, I’m quite the novice to javascript and have been trying to brute force my way into this script. I have a script set up to pull information from frame.io and that part works great. I can push the information I’m looking for to the console, but I want to create a table with the information in it. I believe I need to use createRecordsAsync but I get a little stuck. This is the code I have: //Get Review Links const projectId = '664531da-96f3-4e72-8577-4acb703daddc'; const resp = await fetch( `https://api.frame.io/v2/projects/${projectId}/review_links`, { method: 'GET', headers: { Authorization: 'Bearer REDACTED' } } ); const data = await resp.json(); console.log(data[0]); let table = base.getTable("ALL FRAME LINKS"); let linkyLink = await input.recordAsync("pick a record", table); let assetName = table.getField("Asset Name"); let reviewLinkID = table.getField("ReviewLinkID"); let linktype = table.getField("TypeofLink"); for (i = 0; i < data.length; i++
Folks, I need to make a simple action: When a form is submitted, I need to automatically update a field on all the records on one view to a specific value. How can I do this through scripting?
Hi all, I have two tables that I’d like to link to each other via automation. As the data is flowing in via integrations from 2 different data sources with no common ID, I need to try to map those values. For example In table A I have a field with Name “Abc” In table B I have a primary field with Name “abcd” Now I would like to link those two tables by matching those values that are closest to each other. In Excel that would be done with a “LIKE” operator. How would you approach this in Airtable? Is it possible to do it in automations? And if not, via scripting?
I’m using airtable as a way to keep a product catalog for my company, both out of stock, and currently available products are listed, as to help customers compare products they like but may be out of stock, against our current inventory. Is there a way to script some code to identify specific markers (Flavors, similar categories, etc.) based on user selection/input, and for airtable to automatically recommend a similar product? I’m not well versed in coding, so any assistance would be appreciated!
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.