Need development and API help? Ask your questions here!
Recently active
I was reading in Reddit about the AirTable metadata endpoints API: Verb URL Description GET api.airtable.com/v0/meta Returns a list of your bases GET api.airtable.com/v0/meta/{{base_id}}/tables Returns a list of tables in the base GET api.airtable.com/v0/meta/{{base_id}}/tables/[{{table_id}}, {{table_name}}] Returns a list of columns, column metadata, and views and read that some this link work from some users, this is true or fake???
Is there any plan for an API to pull metadata? It’s currently very difficult to infer the schema, you have to resort to hacks like reading all records and then trying to infer types and column names from that. It’d be great if you could pull the schema information for a table more easily! It’d also be awesome if you’d be able to add and change tables from the API, but that’s less pressing to me :slightly_smiling_face:
I love hill charts and I’ve used them with a number of clients. While the work at Basecamp was certainly inspirational, there are many instances of this data visualization that intersect with the basic concepts. It is truly an appealing visual and when people look at it, they get it immediately, not so much the case with the 1861 version, but certainly with modern versions. Courtesy of Edward Tufte, here’s the first “hill chart” - 1861: I’ve certainly derived original inspiration from other Tufte works and shaped new elements (simplification mostly) by Tufte and the folks at BaseCamp whose engineers describe it like this: Here’s a recent example working in Airtable. One of the issues with the Basecamp example is that it depends on human inputs over and above the usual and customary data collection in a project management process. Using actual project data to allow the projects to fall where they may instead of allowing users to influence placement on the hill or to forget to update
Hello I’ve a database with over than 20K questions sometimes a question has multiple duplicates or (50% similar) I saw a feature in apps that find duplicates which is great my question is that I will add field for each question that will detect any similar record and put it as (link to record) the idea here is to solve my problem, its very hard to find duplicates is that possible ?
I would like a field label to be marked as a required field with a red * - is this possible? I have been trying to use this but can’t get it working. Any tips? Thanks
I tried to get an answer to a couple different things im working on over in the formulas section but didnt get the answer i want so im going to try it here. I am working on a new base that will keep track of fuel used in equipment that i take care of. in one column i have the equipment number, everyday i will be adding a new column to enter the fuel dispensed in each machine that day. The sum at the bottom of that column will let me know the total amount of fuel dispensed for the day but i also need to keep a running total of fuel dispensed for each piece of equipment. My field names will all start with “Fuel” followed by the date… ex (Fuel 1-11-21) , (Fuel 1-12-21) , etc. Creating a formula for this is easy enough if there was only a few fields to add but adding a new field for each day would make that formula long and would require me to go in and modify the formula each day to add the new field to the calculation. Does anyone know how i can do this with a script where the script wil
I have the following code that is looking for the value of a calculated field. But I’m getting an Error: no field matching … let rootTableDat = await rootTable.selectRecordsAsync( { fields: [“Zeiss Planar 80mm 2.8-Prontor CB”] } ); Should this work? Is there a preferred way of doing this? Thanks.
I’m looking for a simple example for updating one or more fields of existing records thru excel vba. I’ve found several example of using GET, a few for POST & PUT, but almost nothing for using PATCH. I really only need to update one field of a record, but many records to update. Thanks,
I have a field for first name and last name where people routinely throw in an extra space after the name so that it will be "john " instead of “john”. I am unfamiliar with js but I would imagine there is an easy script that would trim that last " " off the first name. Help please! David
I’m considering storing information about users in an Airtable table. One of the fields would contain a unique username. From my application, I would like to find the user that corresponds to a given username. I think that the recommended approach would be to retrieve all records with a parameter filterByFormula= {Username}={My ID} as shown here. However, if I’m not mistaken, this would entail Airtable to scan all the rows of the table in order to find this particular record and thus would be very slow for a larger number of rows (O(n) complexity). Is this the case? Can I create an index (as in a relational database) to make such searches faster (O(log n) complexity)?
I’m trying to make monthly reports of a few thousands entries. However my script never stops, and not sure what the mistake is. I’m pretty new to JS and not sure if it’s my loop within a loop that is the problems? let wip, wipOrderView ,tableWIP, queryWIP let cost, costReviewView, costTable, date, customer, garment, switchs, totalFactCost, costTime, estTotalCost, price let currentMonth wip='Work in Progress' wipOrderView='Monthly_order_review' cost = 'Costing' costReviewView = 'Monthly_Overview' date='Date' customer='Customer' garment = 'Garment' switchs = 'Switch' totalFactCost = 'Total fact cost' costTime = 'Time' estTotalCost = 'estTotalCost' price = 'priceScripting' tableWIP = base.getTable(wip).getView(wipOrderView) costTable = base.getTable(cost).getView(costReviewView) /////////////////////////////////////EVERY MONTHLY REVIEW ////////////////////////////////// let everyMonth = async () =>{ output.text(`This will take a little time as the system is compiling thousand
I’m trying to refactor a script that I wrote that is working with a button into a triggered automation. I’m passing the variable “triggeredRecord” using input.config() but for some reason I keep getting the error “TypeError: testRecord.getCellValue is not a function”. I made a test record (testRecord) and I’m getting the same error. What am I missing here? The main goal here is to just keep “triggeredRecord” available so I can target it using “updateRecordAsync”
I’m trying to make a simple repport and wonder if I can make line breaks in a table? I have tried a few different things like: output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50}, {'': 'finished\ncompleted' , '%':100}, ] ) output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50}, {'': 'Delivered<br>Completed' , '%':100}, ] ) output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50}, {'': 'Delivered\nCompleted' , '%':100}, ] ) output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50}, {'': ['Delivered', 'Completed'] , '%':100}, ] ) output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50}, {'': `Delivered Completed` , '%':100}, ] ) The closest I’ve come to a line break is this: output.table([ {'': 'start', '%':0}, {'': 'Halfway', '%':50},
As in my previous post, and several other posts here about fetch(), I’m not sure how much of this question is: 1) my own coding error; 2) issue with/how the scripting block functions; or 3) a combination of those and more. I’ve gotten simple fetch() calls to work, from examples posted on this forum and in the documentation. I’ve also gotten a call to my desired Vimeo endpoint to partially work (with some restrictions mentioned in the earlier linked post). The following code works (copied and modified from other examples on this forum), and since the example video here isn’t restricted (it’s a random video I picked on Vimeo’s homepage), all the information I need is present (namely: the “duration” field). let url = "https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/392348731"; let headers = { 'Accept': 'application/json', 'Referer': 'https://airtable.com', }; let info = await fetch(url, { "method": 'get', "headers": headers }); const json = await info.json(); o
I’ve just started working with custom apps. I’ve gone through the tutorials, but I can’t find a way to view logs to the console in Airtable. Does anyone know how to do this? I was expecting it to be a tab in the below…
Hiya, I would like to run this script in air table. It takes Soundcloud URLs and searches for the most hi res image artwork available and then give back the image url. I would like to run this in airtable with one column being the source urls and with another other being the assocaited output image urls. Can anyone offer any guidance aboiut how to integrate this? Script here: gist.github.com https://gist.github.com/gaearon/717ed6d6c7771f95d50d FixSoundCloudArtworkUrl.js 'use strict'; var express = require('express'), app = express(); require('./config/development')(app, express); require('./config/production')(app, express); var redis = require('redis'), request = require('request'), This file has been truncated. show original Cheers,
Hello, I am new to Javascript (total beginner that has never used it) and am looking for a little help. I am trying to modify this Airtable Script Create Records for Multiple Templates to pull in some additional fields. In the Task Template I have added a field called Assigned To (Field Type=Collaborator). When I run the script I want the collaborator in the template to pull into the task table in a collaborator field. Any advice on how this should get coded? Sample Base from airtable this script was setup with is located here - https://airtable.com/shr1T2PT8nn59SGL1/tblHkbapAxsWIOsuD/viwxYhChbD0s17Kcm Thanks in advance.
Hey! I’m trying to send an array of customer data to an API webhook on a external service (e.g. Sendgrid/Zapier), using a POST request in a scripting block. Using the basic fetch() function, CORS is preventing it to work. Using a CORS proxy like https://cors-anywhere.herokuapp.com/ isn’t an option because I don’t want to send sensitive data through this service. What’s the best way to fix this? Best Dominik
Hey AirTablers, My marketing manager would like to have a single view of all her marketing tasks in a single table. The marketing tasks are spread out across multiple bases. I have already converted the tables into sync tables and have brought them all into a single view. Now I would like to have all the records in each table of the new bases aggregated into a single table view so we can have meetings and not hop around. It would be great if we could make changes to this view ad have it sync back to the other tables but that is not crucial. However, having all the records in one view would be great. I used a script to pull the records from each table but would like to aggregate the records before outputting. The code below demonstrates what I have accomplished so far: let table1 = base.getTable("The Union"); let query1 = await table1.selectRecordsAsync(); let table2 = base.getTable("Suli Fund"); let query2 = await table2.selectRecordsAsync(); let table3 = base.getTable("Solo Magic")
Really new to scripting and I feel like this should be possible but I’m not sure how to manage it. When I copy and paste the information from my source (a website) into my table, it obviously only fills up the first column (“Name”) with not only the names, but all of the copied info into individual rows. What I would like to do, is create a script or automation to cut and paste the information between the actual names into the second column (called “Notes”) which is where I have automations to pull from that content and auto populates info into the corresponding fields. Here is my attempt to visually show what I am trying to accomplish. To be clear on how the data is pasted on the table, just before the actual name (which is unique) there is always the same field type. It begins with “Date” and ends correspondingly. I want to collect all of the text in the fields between each actual name, and paste it into the “notes” field of the name that it belongs to (just above it.) Eventually I
Hello Community, I was able to connect Typeform to Airtable, however when I choose a “Picture Choice” field in Typeform, my table doesn’t recognise the field and I cannot connect the Typeform field to my column in Airtable even when I make a ‘multiple select’ column out of it. Does anyone know how to connect my picture choices from Typeform to multiple select columns? Much appreciated, Bruno
I currently have a VueJS project up and running locally. However, I am now trying to get the data stored in my Airtable Base and use a Vue JS v-for loop to display it. I have installed axios as a dependency (using npm), followed the steps in this tutorial Airtable + Vue.js for Static Websites - TaxJar Developers and now have a v-for loop, using a slightly different HTML tag, in my template. After inspecting the DOM I can see that the for loop prints a span tag for every record I create in my Base. In one way my JS must be connected to the Base, However, these span tags are empty and I am still struggling with getting the data from the BASE. <div v-for="record in records" :key="record.id"> <span v-for="(col, colIndex) in columns" :key="record.id + '-' + colIndex"> {{record.fields[col]}} </span> </div>
In Baserow (another online spreadsheet), it’s possible to create as many tokens as you need to access your bases/sheets/tables. Each token has specific access rights (create, read, update, delete) for each table, so that way you can put some API keys in your code without worrying about the more sensitive data getting exposed. It would be great to see that kind of feature with Airtable.
Hi there - I have it working to update individual records in updateRecordAsync but it’s replacing the cell values. How can I keep from updating the cell values but just update by adding? This is for a Look-Up field so it requires a different format than string.
I am trying to push multiple values in a look-up table at once to a single update field. So far I am filtering the record, finding the IDs of the values in one of the values. Pulling out specific ones and then I am not sure what to do to update multiple values inside of a new field with a look-up table. Note, I didn’t copy and paste properly. The syntax is not the problem, the problem is that I do not know how to get the multiple look-up values to update. //// CODE BELOW testID = “recZnhmuRKPJEvVE0” let t_results = base.getTable(“results”)// let thisrecord_as = await t_results.selectRecordsAsync(); let thisrecord = thisrecord_as.records.filter(f_record => f_record.getCellValueAsString(“cli_res_id”) ==testID ); for (i=0; i<thisrecord.length; i++) { let this_spec = thisrecord[i].getCellValue(“Input_Look_Up_Field”) let this_fm_id = thisspec.id var pushval = { fields: { "UpdateField": [{id: this_fm_id}] } } } if (pushUpdates == 1) { await t_Client_results.updateRec
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.