Need development and API help? Ask your questions here!
Recently active
Hello community! :upside_down_face: I have a table where I store my products, in which I have a multiple select field called “Who has access”. I`d like to record in that field the user id of all users that had purchased each of my products. I`m using Bravo Studio to develop my app so I have a PATCH request API there, where I enabled the “typecast” parameter, once Id like to be able to concatenate a new user id every time that request is called. However, every time I execute the request the value of the field “Who has access” is overrided instead of concatenated with the new user id. :confounded: My JSON code in the PATCH request looks like: { “records”: [ { “id”: “${record_mimo_id}”, “fields”: { “Who has access”: [“${user.id}”] } } ], “typecast”: true } Im struggling to find out what Im doing wrong :sob: Does anyone can help please?
Hey Community ! I’ve been searching here and there, and i don’t see the way to update multiple fields at the same time, in the same updateRecordAsync. Is it even possible ? Because doing one field update at a time is very slow. Any help or workaround appreciated :cowboy_hat_face:
// Setup start const mainTable = base.getTable(“Inventory”) const mainTable_imageFieldName = “image1” const mainTable_nameFieldName = “Deskera No” // Setup end const mainQuery = await mainTable.selectRecordsAsync({ fields:[mainTable_nameFieldName, mainTable_imageFieldName] }) // Build new attachment data let updates = for (let record of mainQuery.records) { let name = record.getCellValue(mainTable_nameFieldName) let attachments = record.getCellValue(mainTable_imageFieldName) if (attachments != null && attachments.length ) { for (let attachment of attachments){ let parts = attachment.filename.split(“.”) let ext = parts[parts.length - 1] let fileNumber = “0” + (attachments.indexOf(attachment) + 1) let newName = name + “-” + fileNumber+“.”+ext // let newName = ${name}-${fileNumber}.${ext} // let attachmentName = name + " - " + attachment.filename updates.push({ id: record.id, fields: { [mainTable_imageFieldName]: [{
Hello all, I have a question regarding the changes to the attachment url’s. I have images stored on Airtable that I fetch using the API and display them on my site. I am not using the any permanent link. Whenever a user accesses the site, it requests the data and gets the image url and displays it. Will the changes affect this use case? For example, I know that cloudfare may cache the temporary url and then feed it to the public, but does that mean that some users will get a blank image instead of the new url? Thanks in advance
Hi All, I am trying to create a script that duplicates the selected record entirely, but changes two fields: [start date] and [end date]. I would like the [start date] to be set as the MONDAY following the current records start date I would like the [end date] to be set as 5 days after the new start date Is there a way to achieve this with a script. Right now I have the basic script to duplicate the record, but not to make any changes. Thanks, Samuel
Hi… I am using Airtable as my backend for an app I am building in Appgyver. I am trying to experiment with Airtable’s query parameters and I just can’t seem to get some things to work. Currently, I am just trying to retrieve a list of records, but only certain fields for those records. The API Documentation for Airtable seems straightforward but I keep getting the same error: I received a response from a helpful Appgyver user who pointed out that “The HTTP 422 Unprocessable Entity Code indicates that the server has understood the type of query content and that the request syntax is correct but that the server has not been able to carry out the requested instructions. You have to formulate your request differently to access your data.” However, he stopped short of explaining exactly what this means. Any takers here able to help? Thank you!
I’m using Zapier to create an automation that updates a record in Airtable each time an invitee is created in Calendly. I have events set up in Calendly for volunteers to sign up for shifts from, and then I want the shift’s assigned volunteers to update in Airtable. The automation works and updates the volunteer’s scheduled shift, but the issue is it then removes all other linked records of shifts (which then impacts our record-keeping for hours logged, etc.) Is there a way to get Zapier to add to an existing record without deleting the information that’s already in a field?
Hello all, I am working on creating a product database for my company. Ideally I would want to be able to select what product I am looking for, and then airtable show me the most similar option based on about 11 different attributes. There is a decent amount of data for airtable to sort through, as there are about 220 records (and still adding more), each one having at least one (typically two or more) attribute(s) each from the 11 different attributes types using multiple select fields. I am wondering if there might be a solution (either with scripting or automation) to this problem. Any help is most appreciated! If anyone would like to see more in depth what I am talking about, in regards to the data level of my table, I’ll provide one of my public access links below. I do work for a cannabis company and we are in a legal recreational use state within the US, so everything is fully legal as far as the state is concerned. Airtable Demonstration Table - Airtable
Hello All, Im trying to utilize the ‘Create Records for Multiple Templates’ script but running into trouble on modifying the script (or maybe there is a better script to use?). Essentially, I got the basic script “out of the box” working. Projects holds the project list with project type, and target end date Tasks holds the tasks for all projects should be compatible with Gantt view links to project in projects table Templates holds the templates for each project type However when creating a project, there is 2 major problems: no proper dependency, instead this script block just uses “Task Order” no link to date fields So basically im asking, how can I: Use a dependency field in the Template Table to carry over to the Tasks Table. NOTE: The Template table tasks are named by task, ie Task 1, Task 2. However the Tasks table tasks are named by Project - Task, i.e. Batman - Task 1. So when populating a self-linked table field in the Tasks table, it needs to convert the dependency (te
So if I do a formula like this in AirTable: phone=‘+61 432 777 028’ it can figure out the + and even the space - but it gets more complicated when trying to filter by formula through API… now I’m sure i’m missing something but here is the proof… in video form! Tldr: spaces are not working in AirTable filter formula through API Minor issue but just thought I’d point it out
Can anyone provide me with the formula to filter the records based on the assignee mail. As assignee is kind of a compound filed I am unable to find a way to extract the mail and pass it in the filter by formula method. Thanks in advance
Hi everyone! I have altered the example script a bit to update the ‘£ Rate’ field on all records in my ‘Cash Input’ table. I want the script to update the ‘£ Rate’ field only in new records that do not already have a value in the ‘£ Rate’ field. How can I do that? What changes does my code need? I use this code: let table = base.getTable('Cash Input'); // Fetch conversion rate from API - you could change this to any API you want let apiResponse = await fetch('ttps://api.exchangeratesapi.io/latest?base=EUR'); let data = await apiResponse.json(); let conversionRate = data.rates.GBP; output.text(`Conversion rate: ${conversionRate}`); // Update all the records let result = await table.selectRecordsAsync(); for (let record of result.records) { await table.updateRecordAsync(record, { // Change these names to fields in your base '£ Rate':conversionRate, }); }
Source code for scripting blocks seems to be interpreted as function code. For example, the following input executes successfully (writing the string "first" to the output container): output.text('first'); return; output.text('second'); Using return at the apparent top-level of a script can be useful for control flow in shorter scripts since it allows developers to exit early without throwing an error or wrapping their code in an immediately-invoked function expression. On the other hand, the behavior is undocumented, and the scripting block’s editor flags it as a syntax error (“A ‘return’ statement can only be used within a function body.”). That makes it unclear whether developers should rely on it. It would be great if the developer documentation for the Scripting Block said something about whether authors can rely on this (and if so, the editor updated accordingly).
Hello! :wave: I have been trying to figure this out for a couple of weeks now, but finally diving into custom scripts. I am trying to set up an Automation in my Airtable Workspace where: https://i.imgur.com/7YzO6yB.png Button is pushed > Import data from .csv or Google sheets. Is there a script that will import when I push that button? It doesn’t have to be this way exactly, it can be an import every couple hours as well. The goal is to just take data from a google sheet that is updated by 50+ people and just automatically import it that data to my airtable a couple of times a day. I have tried visual Scripting sites like zapier, make.com, Integromat, couplier.io, sheetgo, chrome extensions, etc. Thank you!
Hello all, We are currently testing the usage of a wiki app to produce nice and up to date functionnal specification in our project. This wiki would be even more relevent if it can consume data coming from our Airtable databases. We test confluance as wiki solution. We currently use an airtable database for our project glossary. I am trying to display within a confluence page an airtable record corresponding to a glossary definition. The record ID corresponds to a word and I would like to display only a field of this record which is the glossary definition of the related word. I don’t want to use a view to do so. Could someone help on this use case ? Best regards Arthur Viret
Hi Airtable Community! I am creating a project management system, complete with Gantt charts and project templates. In summary, here is what this script is doing: Allow user to select the campaign (webinar, whitepaper, etc) Filter the template table by the selected campaign, which reveals matching tasks to be done. Duplicate the subtasks matching that campaign into the live task tracking table I have 90% of the script working, but I am stuck on TWO things: Setting the date offset from “Launch Date” rather than “today’s date” (see comments) Creating a record with multiple record links (linked from the same table as dependencies) creating a record from a template where that record template has multiple linked records. It might help to know that I do not have a strong background in javascript, but I am familiar with other languages. Here is the code below that was made possible by this webinar (thank you!): ///function to add days using Date Offset in Templates from "Launch Date" in C
Good afternoon! I’ve seen something like this get asked a couple of times, but usually there’s no answer or just a recommendation to check documentation or something to that effect. I am an absolute JS neophyte, but I’m reasonably computer-literate. My goal is this: A button-activated script that: Duplicates the selected record Copies the contents of the “End Date Minus 7” field of the ORIGINAL record into the “Start Date field” of the NEW record Copies the contents of the “End Date Minus 7” field of the ORIGINAL record into the “End Date” field of the ORIGINAL record. Essentially it takes a 15-day shift and splits it into two 8-day shifts that overlap by a day. It’s a little loopy, but the maneuvers seem like they should be simple enough. How would I approach this?
HEy All I’m trying to create a CURL API request that Searches for records that are {WEEK} = “24” AND{PAGE} contains “22”. My PAGE field is a look up so it might have more than one page number in it. If PAGE has one one record in it I can use filterByFormula=AND(%7BWEEK%7D%3D%2224%22%2C%7BPAGE%7D%3D%2222%22) I think I need to use SEARCH or FIND but I cant work out the syntax. Thanks in aadvance
Hi, I’m struggling with the Airtable API, I’d like to download the content of one table, all 3k+ records and save them as a csv file using python (I can’t code JS). My issue is that while trying to connect to Airtable Base and trying to get the first 100 records, I get blocked by a user authentication challenge page and get returned a 403 response saying. Our systems have detected unusual traffic from your computer network. Please help us with a quick security check to validate it’s you sending this request. This may be happening because: Javascript is disabled or blocked by an extension (ad blockers for example) Your browser does not support cookies Please check your settings to ensure Javascript and cookies are enabled that are not from loading in your browser. It’s actually referring to this user authentication page: Airtable User Authentication Challenge Page | Airtable Support Here’s my code: import requests import pandas as pd # Environment Variables AIRTABLE_BASE_ID = "appxxxx.
Hello everyone, I have a table Company and a table Benefits. Company has many Benefits. When I get the list of linked records (Benefits) from a Company record (trigger by update), it gives me an array of the linked records but with its name. I would like to get the array but with ids instead. I use the input variables interface to get the fields Benefits (relation) in my Company record. There is a way to get this array of benefits by id within the interface or do I need to code in the script (beginner in scripting) ? Thank you so much for your help!
First, I want to say I am new to JavaScript so I could be doing something obviously wrong. I have a table that has user emails, and then linked fields to each “assignment” they submit. That is connected with an automation, when they submit a form, it links the record. Now, I am trying to assign points to each user, with each assignment having a different point value. let table = base.getTable("Assignment Tracker"); let query = await table.selectRecordsAsync(); for(let i = 0; i < query.records.length-1; i++){ let cohort = query.records[i].getCellValueAsString('Cohort (from Students)'); let email = query.records[i].getCellValue("Student Username (Email)"); let points = 0; // I have more activities than this, just putting it here so you can see how each is structured. if(query.records[i].getCellValue("(1) Cold Intro Call")) points = points + 15; if(query.records[i].getCellValue("(1) Free to Paid")) points = points + 3; console.log(email + " " + points
I’m fetching XML data text() but am running into a dead end when trying to find a way to parse the data. I tried using domparser and a few different functions I found on StackOverflow but most seem to require a non-native library. Does anyone have any suggestions on either how to parse XML in vanilla javascript or how to convert XML into JSON? For reference when using let parser = new DOMParser(); I get “ReferenceError: DOMParser is not defined”
I operate a booking system in Airtable and I have to generate months of recurring dates/times (one per record) in advance. Click, hold, dragging date sequences is very helpful in this regard (see: Quickly filling cells using fill handle – Airtable Support) However, I’m left wanting more. I’d like to create a script or automation to generate the recurring dates/records for me. As an example, let’s say I was teaching a yoga class every Mon, Tue, Thurs, and Sat at 1 pm and 4 pm. Instead of having to continually check my dates, then drag out hundreds of dates/records manually, I’d like to write a script or automation that would do it for me, thereby ensuring that the timeslots/records for the said class were always created several months in advance. Has anyone solved a similar problem to this one? Does anyone have any thoughts as to how I should approach a solution? I could imagine an Airtable app that had similar options to the “create recurring event” modal used by google calendars.
Hello! I am new to scripting. I am trying to replicate the action that is being performed on the variable below: “ :writing_hand: CREATE: Product Input”: [{id:${inputConfig.productInputName[i]}}], for: “ :writing_hand: ADD: Input Qty (Mass per Unit)”: [{id:${inputConfig.InputQty[i]}}] But failing, I believe because InputQty is a string of numbers (but formatted as a string) and the receiving field is a number field. What is the best way to convert from string to number?
I am sure this has been asked before, I have searched high and low, and have found no solution to do the following, even with Zapier. I have a .csv file that I want to import direct to Airtable. The .csv was created programatically (in Node.js), and exists on a Google Cloud VM (Red Hat Linux). There is nothing in the AirTable API that allows for direct insertion of a full CSV as a new tab in an existing base. I want to name the tab in the existing base the same name as the CSV file, without the .csv extension. If anyone has actually done this successfully, and smoothly, please respond. The only articles I can find on how to import a CSV to AirTable involve a human being and clicking in the browser.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.