Need development and API help? Ask your questions here!
Recently active
I already reported this on the github javascript library, but I think more core developers might see it here as well. I want to filter the results of the airtable rest api based on the field ID using the filterByFormular parameter. The reason for that is, that the name could always be renamed, using the ID is future proof. A simple filter look like this: Name = "Joe" But instead I want to use the id: fldnwAXj3iM53qu4y = "Joe" After tons of googling it turns out that this is simply not implemented. I also tried it out with the id in brackets, but that still does not work (so it is not undocumented). I think this is a critical feature for the rest api, to build robust apps on airtable. It should be a quite simple feature with a huge impact. Might be worth a look.
Hey everyone, I’m new to using scripts and I’m hoping someone can help me out. I’m running an automation that runs a script which includes the input from the trigger but I have no idea how to add the input to the script. Here is the script, the input is supposed to be sent as the body to the webhook url: let response = await fetch('https://hook.eu1.make.com/o3pnw2043wkr9zs9mcavdrix', {method: 'POST', body: '*Input should go here*'}); console.log(await response.text()); Thank you
Hello, I am a beginner in the API world and I am a little lost in my research. I have a script that sends data with webhook into a google script. I check with webhook site if my data was send correctly and I succeeded to retrieve the data from my airtable (after I choose the right row). My question is, how can I get the data (from the payload) with variables into my google script doPost function ? I want to retrieve data from my airtable to generate a google doc after. I hope it’s clear enough. Best regards
Hi friend, i am new to airtable scripting, i am trying to send a webhook to third party API, let url=“https://connect.pabbly.com/workflow/sendwebhookdata/IjQ0NDI0NiI_3D”; let config=input.config(); await fetch(url+config.recordid); In airtable, it show test run is successful , but on the third party side, no record is received, am i doing anything wrongly?? please kindly help!! thanks
Dear all, I am new to Airtable. I wish to find out how powerful is the Airtable scripting language (is it Javascript?). Is it powerful enough to automate anything within an Airtable base? For examples: to validate a user input on a field and able to undo if it’s invalid; change the colour of a field; hide a button on the fly, etc. Can I attach a script to a button on a form? Airtable is known as a low code platform, does that mean bases are usually developed without writing much scripts? Thank you very much in advance. Martin
Hello. I’m writing a VSC extension, and using the example javascript code provided in the airtable api docs generated for my base. The code gets the records from airtable, but then logs an error. The extension doesn’t crash, but fails in airtable.lib.run_action.js line 70 where it calls callback(base._checkStatusForError(resp.status)); with a rep_status of 200 Is this an airtable problem, or should I be adding reject code, catch code or similar? rejected promise not handled within 1 second: TypeError: Cannot read properties of undefined (reading 'offset') /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:102 stack trace: TypeError: Cannot read properties of undefined (reading 'offset') at /Users/dave/Documents/Projects/vsc extensions/airtable-docs-ext/node_modules/airtable/lib/query.js:118:28 at /Users/dave/Documents/Projects/vsc extensions/airtable-docs-ext/node_modules/airtable/lib/run_action.js:70:17 at processTicksAndR
I need a script that will run when I push a button that will check to see if a field is “TRUE” or checked and if it is, than will send the webhook out with the recordID. This will help our workflow because we want to make sure that all needed fields for a Zapier automation are present before a webhook is sent.
Hello, maybe someone had a similar issue and can give me a hand After I do Block run on my extension the resulting localhost URL has an expired SSL certificate. It is my understanding this is a self signed certificate created on the fly when I do Block run (but I might be wrong) I searched for the certificate everywhere but it just isn’t there, which makes me believe it is created on each run for the server. Does know if there is a way to specify the certificate I want to use when I do Block run or any other work around to this issue. I am pretty sure I might be doing something wrong since I couldn’t find any other report on the same thing but I have spent 3 days now on this without luck. Any help will be appreciated!
Hi there, we recently saw an increase of interest from our customers using regarding a potential integration with Airtable. Naturally, there has been quite some excitement from customers and ourselves when we decided to kick off the design and technical spike work last week. Given the nature of the product, we were somehow assuming that Airtable would have a great developer experience, including OAuth2, as well as all the necessary REST API endpoints one could wish for to build an amazing integration. Learning that OAuth2 was not a thing yet was a bit of a bummer, but something we felt we could still workaround for the time being. And even though it felt a bit weird to have to manually request access for only the Meta API, it was pretty much the next step we took from there… which, well… brought us to the “thanks, but nah” message many others got here as well… right after applying for it. Oof. Going through previous community posts, it seems like there has been no meaningful updates/co
Hi, I try to filter airtable using the by the record’s id, for example filterByFormula=OR( {id} = ‘rec1’, {id} = ‘rec2’, … ) and I got the error “unknown field names: id”. That also results in errors even after I remove the brace brackets. Tangent
My “Published URL” column contains URLs of web pages. Through API, I would like to be able to pull only the record containing a URL I supply in the call. I am already successfully making a curl call with this… $base = 'appPtTr2kigmLlCP8'; $table = 'Content'; $view = urlencode('Published (Robert)'); // $fields = urlencode('Published URL'); // Only return these fields, cf. https://community.airtable.com/t/using-fields-filter-in-list-of-records/940 if (!empty($offset)) { $q_offset = '&offset='.$offset; } $airtable_url = 'https://api.airtable.com/v0/' . $base . '/' . $table; // construct the url query $url = 'https://api.airtable.com/v0/' . $base . '/' . $table . '?maxRecords=5&pagesize=1000&view='.$view . $q_offset; But how can I make use of the relevant feature (is it filterByFormula?) to add Elsewhere on the forum, I have seen reference like… filterByFormula=SEARCH(‘riva’%2C+%7BLast+Name%7D) But I have not crystallised how I would perform a query for
What does this error mean? j: Error: Failed hyperAssert: rowJson at main on line 24 Here is the code I have: let table = base.getTable("SMS"); let view = table.getView("Kosta"); let json_response = '{"action": "linkcreator", "data": [{"id": "recpuidwtkoxhyylo", "name": "kosta kondratenko", "url": "https: \/\/headstudios. Com. Au\/for_you\/sales-terminator-army-generator\/", "shortlink": "", "linkid": "lnk_1lhi_2rcwr8", "mobile": ["0412 826 569"], "path": "kostas-terminator", "displayname": "kosta", "originalurl": "https: \/\/headstudios. Com. Au\/for_you\/sales-terminator-army-generator\/? Fname=kosta", "secureshorturl": "https: \/\/showme. Headstudios. Com. Au\/kostas-terminator"}, {"id": "rec2nv7qklwu5jmbv", "name": "kostya kondratenko", "url": "https: \/\/headstudios. Com. Au\/for_you\/sales-terminator-army-generator\/", "shortlink": "", "linkid": "lnk_1lhi_2rcwr9", "mobile": ["+61412 826 569"], "path": "kostyas-terminator", "displayname": "kostya", "originalurl": "https: \/\/heads
It would be great if you could make the default values also work for API created records. Maybe optionally for backwards compatibility. Cheers, Arthur.
Good morning all :coffee: My example base - a score board :joystick: There’s a neat trick that not too many casual Airtable users know about - where by configuring filters within a new view that’s filtered to Single Select column(s), that new records created under that view will default to the filtered value(s). Very handy! Have the Single Select Field (or more) Create the View Filter that View to Single Select colums New records created default to those values. My question - is it possible to POST a record to a targeted View? Obviously the API calls for the Base ID and Table target, but I can’t find anywhere that details the syntax, or even mentions if it’s possible to utilize a view within that table for record creation via API. To log a new score (using Postman to learn with), I have this; https://api.airtable.com/v0/%My_Table%/HiScore?fields%5B%5D=Return&filterByFormula=(%7BStatus%7D%3D%22New%22)&maxRecords=3&pageSize=3&view=New For readability; HiScore ?fi
Hello everyone! This is kind of a stretch, so I am wondering if you anyone knows if this is possible. I am looking for a way to iterate through all records in a table and create a chart based on data linked in another table. I’d like the save a picture of each of these charts in another column in the record. For example, I have a table of people on a roster. Each of the people have certain metrics associated with them over time. I want to chart those metrics on a lineup graph and save it in the persons AirTable record. Is this possible with some script combined with a vega, google charts or image-charts api call? Can the AirTable Script editor handle image files? Thanks!
Hi guys, I’m trying to set up a GET API call with filterByFormula that would return an error instead of empty value. Imagine that I have two fields - {user_id} and {full_name}. {user_id} field always exists, but based on formula it should return: A) 200 OK response if full_name does not exist b) ERROR response if full_name field already has a value Any help would be much appreciated! Thanks!
(Javascript novice) I’ve adapted some code to work with my different field names but it isn’t working and I’m not sure why. This script is supposed to update the fields “Proposal Accepted”, “Checklist Sent”, and “Checklist Received” based on the amount of time that a single select field was set to either “Proposal Accepted”, “Checklist Sent”, or “Checklist Received”. Strangely, the automation runs successfully sometimes. When it doesn’t run successfully, the execution log is as follows: Error: Could not find a field with name or ID “undefined”. at main on line 72 Can anyone see the problem? Here is the code: let table = base.getTable('Jobs') let proposalAcceptedTimeFieldName = "Proposal Accepted Time" let checklistSentTimeFieldName = "Checklist Sent Time" let checklistReceivedTimeFieldName = "Checklist Received Time" let proposalAcceptedLastModifiedFieldName = "Proposal Accepted Last Modified" let checklistSentLastModifiedFieldName = "Checklist Sent Last Modified" let checklistReceiv
I’m new to Airtable and have no JavaScript knowledge so I’m hoping someone smarter than me can help! I’ve been trying for weeks to figure out how to write a script to set due dates for each task in a list for a given project. So far I’ve modified this script to generate the tasks. The part that I’m stuck on is that instead of tasks having dependencies based on the completion of another task, my tasks have due dates that are relative to the type of task. I just can’t figure out how to script: use an input of new project, then for each new task created in Tasks Table, use task type from Template Table, get corresponding dependent date for that project from the Projects Table. Use that date, calculate the Due Date in the Tasks Table using something that would function similarly to the formula WORKDAYS((dependent date from projects table), (+/- that record’s value in the Task Template Table), days).
Airtable give me a tool to encode my url . but … How to do it ? How to use the API URL encoder tool : https://codepen.io/airtable/ thanks
Hi all, so I wanted to check if there is way to retrieve a specific record based on filter criteria, Based on my Understanding so far i can only use table.selectRecordsAsync() to get the array of all the records . later need to perform filter using linear search on the returned array. i wanted to check if i can get a specific record based on query condition as a response. for example : From table animals … i need record where name == X, is there a better way than getting all the records and then i need to loop through until i find X. kindly help me with this. thanks, Harshith
Hi there :slightly_smiling_face: I have a very simple code involving if statements and buttons but it’s not working. I’ll explain further below my code: let sale = await input.buttonsAsync("Is the vehicle set for another service or will it be sold/scrapped before then?", ["Yes, another service date", "No, will be disposed"]); if (sale = "Yes, another service date") { let plan = await input.buttonsAsync("Is the next service on a date or at a specific mileage?", ["Date", "Mileage"]); if (plan = "Date") { let date1 = await input.textAsync("What is the date of the next service? ( eg: May 1, 2022 )"); let format_date1 = new Date(date1); let format_date2 = new Date(format_date1.setDate(format_date1.getDate()+1)); let final = format_date2.toISOString() let field = table.getField("Next Service (if Date)"); let confirm = await input.buttonsAsync("Are you sure you want to update th
I’m using the following to capture an email address: email = await input.textAsync(‘Please enter email’); I want the input to be optional, but the “Next” button only becomes enabled when you type something in -the field. Is there a way to make the field non-mandatory or is this a bug?
I am a complete noob and know next to nothing about coding, so bear with me please. I download order reports on ebay and upload them into my airtable base for a partner to gather the data from. They are downloaded automatically in .csv format, with no option to omit any data beforehand. The automatic csv import tool that airtable provides doesn’t work for these because they contain 63 columns. I only use 29 columns, and I reorganize them a little as well. I am trying to find a way to make this automatic. I thought I would try and use the scripting extension to do this. I chose the example “spreadsheet importer” to use as a template. My knowledge of scripting is about 1 html website I made in grade 7 computer class 13 years ago above the average persons level of knowledge, aka slim to none. Here is how far I got before getting confused: // Ask the user to import a CSV file containing a header row let csvFileResult = await input.fileAsync( ‘Upload a CSV file’, {allowedFileTypes: [‘.csv’]
Hi, I’m currently developing a WhatsApp chatbot using Node.js. I’m implementing a functionality where the bot stores the specific responses from the users in airtable columns. But when I was going through the community I found out that it’s not yet possible to create columns programmatically. So for time being, I wrote a program that updates the field say Responses The problem I’m facing is when I call the update function it overwrites the existing record. Is there a way I can append the new value to the existing record without overwriting the old value?
Hi guys, Need your help in scripting. I want to concatenate month and templateName to another table using scripts as individual records. My desired output is e.g. templateMonth; templateName 2022-01; HD-HD1460, TR144 | 1 x RM-HD 2022-01; HD-WHITE | 5 x RM-HD, 1 x RM-WHITE How do I achieve this using a button? Thanks.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.