Need development and API help? Ask your questions here!
Recently active
I have a table with Large set of rows, I have an Array of Record IDs which I do not want to display in the result of records, how to do that? I am using airtable API for JavaScript, I have tried using filterByFormula but unable to understand what syntax to write for this exact functionality Sign in - Airtable in this filterByFormula: "NOT({name} = '')" instead of '' I want to able to pass an array if possible, or any alternate solution for the same
Hello I would like to create a field where when data is imported into AirTable, that it would input the current month as written into a specific cell. like “7/1/2021”, for any entries entered in that month, I want this one cell to enter 7/1/2021, and not update any previously entered rows.
Hey guys thank in advance, I’m trying to fetch a single record base on email Address column. I’m using Express and Axios from the front end to parse the req.body request and pass it in to the select method with the filterByFormula option, but it seems that every time I use template literals the response brings back all values in the email column. any idea why is that. I’v tried several variation, but with no luck. const record = await sheet.select({ filterByFormula: `"{Email} =${email}"`}).firstPage() plus I was wondering if I can fetch a record with the find method, but based on a column and the id is that possible? cheers to all
Hi guys, I’m creating some bases on Airtable which I want to embed into my wordpress website with different filters, a bit TripAdvisor-esque. It will actually form the main part of my website (lots of tutorials are for embedding forms etc but I want this to be a full online database) Which integrations would you recommend? Thanks Sana
Hello, I have a table called “Prospects” in which there’s a single select field called “Status”. All the values in this table are filled from a connected form, but I am trying to insert a default value for “Status”. Regular “default value” functionality doesn’t work on single select, and even when I change to text/number - when the record is inserted via a form - the default values don’t really apply. I have trying working around it by rewriting the “find and replace” script - find all null values in “Status” field and change to “1”. let table = base.getTable("Prospects"); let field = table.getField("Status"); // Load all of the records in the table let result = await table.selectRecordsAsync(); // Find every record we need to update let replacements = []; for (let record of result.records) { let originalValue = record.getCellValue(field); console.log(originalValue) let newValue = 1 //originalValue.replace(findText, replaceText); if (originalValue !== newValue) {
I have a database that tracks inventory. There is a linked “Historical location” field that I would like to update every time the item moves to a new room ( i have a separate rooms table). I’ve read through forum posts and tried a few things. I gather that I need to map the existing linked field array and then add to it. Or somehow determine how many items are already linked and then add the new one. Any help is appreciated. Example: Inventory #1234 Historical Location: room1, room5 ----Item moves to room15---- ----update historical inventory with that new room ---- Inventory #1234: Historical location: room1, room5, room15
Hi all! I’m developing a script that triggers when a new row is added to a table (it makes HTTP call to retrieve more data, and add to the missing columns). I’m currently using “When record is created” as a trigger, and it works well in cases where the entire row is added to the table at the same time through other automations, or copy-paste. My problem is with written inputs. So if a user writes the data manually, the script triggers too soon, before all the columns are filled in, thus with only partial inputs to my HTTP call. What’s the best way to overcome this? Intuitive I thought the trigger would work so that when a user is adding the row, it fires only when the focus goes away from the added row. But obviously not. :slightly_smiling_face: Thanks for the help! Cheers, tommi.
I’m looking for a way to import subtitles to Airtable. Fir instance Airtable has Youtube video links in one of the columns. The solution (e.g. script) would grab that link, go to Youtbe and fetch the transcript. Anybody has attempted this? Here is somebody who shared a script apparently. gist.github.com https://gist.github.com/Phoenix-Effect/fbc8e54af71424d7ce4e86d54182f8b1 main.py import pafy import os import glob import re from airtable import Airtable from airtable.auth import AirtableAuth import requests from pathlib import Path from webvtt import WebVTT This file has been truncated. show original
My very simple script (in an automation) to trigger a webhook containing record ID is failing intermittently. I do not know the cause. The error is “Script exceeded execution time limit of 30 seconds”. Such a simple script shouldn’t ideally throw an error. Can anyone suggest a way forward? V
Is there any way I can query all of the available options in a Multiple Select field through the GraphQL API?? It’s not that I want to get a specific table value which is a multiple select. What I want is to get all of the possible values. Thanks in advance
Is it possible to modify image EXIF data in Airtable such as date, time, GPS? I found lots of information about how to read EXIF and save it in Airtable but there is no info about how to edit EXIF. Thank you.
I have an Airtable which is a calendar schedule. I would like to use the API to apply this calendar to my website. However, I don’t want it to be “hot.” In other words, I don’t want changes in the table to immediately populate the website, because there might be an error. I’d like to have a staging environment for the API, that only changed when I approve what is in the Airtable, not in real time. What is the best way to do this? Thanks in advance!
My use-case is that I want to send a slack message when a record is created. The reason I am not using the built-in Slack Message automation is that I want to customize the Slack Message using Attachments and Blocks features. I am wondering what is the best practice to get your SLACK_TOKEN from the Script itself. Is there a built-in variable that holds it? Should I use input variable or should I just assign the token to a variable? how safe it is? Thanks in advance!
I have a custom solution that automates adding a linked record and auto-filling some fields, and the app is wired to a button. Every time the button is pressed, the sidebar opens to the app. I imagine this is totally expected behavior, and desirable for most custom app implementations, but is there any way to get the app to run “in the background” without opening the sidebar? I’ve noticed, for instance, that if someone clicks the button from the expanded record view, rather than directly from the grid, the sidebar goes full screen and my user testing shows people are getting confused by this takeover and having trouble finding their way back to their original context. Can we just prevent the sidebar from opening somehow?
I’m having trouble calling an external API (frame.io) from an Airtable scripting app using remoteFetchAsync(). This is what I’ve tried: // Change this name to use a different table let table = base.getTable("🎬 Projects"); // Prompt the user to pick a record // If this script is run from a button field, this will use the button's record instead. let record = await input.recordAsync('Select a record to use', table); if (record) { // Customize this section to handle the selected record // You can use record.getCellValue("Field name") to access // cell values from the record output.text(`You selected this record: ${record.name}`); const teamId = 'team_id_hidden_for_security'; const resp = await remoteFetchAsync( `https://api.staging.frame.io/v2/teams/${teamId}/projects`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: 'Bearer token_hidden_for_security' }, body: JSON.stringify({ name: record.name,
When we send an update operation to Airtable, it returns all fields from the updated record, is there a way to filter those fields and return only the necessary ones in the same request, without needing to use query the record again? Like when fields is passed through the query parameters?
Some time ago I requested support for BC dates in Airtable date fields (perhaps by denoting them as negative dates). I understand this feature is not a large value proposition for Airtable, and that it probably presents some unique challenges. I lieu of official support for BC dates in the date field, I figured I’d see if I could tinker with the Timeline App to see if I could get it to ingest a modifier that will convert a date to BC. Alas - the Timeline App is not open sourced like several other Apps by Airtable. So at this point, I’d like to reiterate my request for support for BC dates in Airtable date fields, or else request that the Timeline App be open sourced. My goal, if it wasn’t obvious, is to be able to build a massive historical timeline for educational purposes. I think Airtable provides a very neat platform for something like this because of the ability to expand a timeline record and explore any number of custom fields, including photos, videos, PDF’s, relevant data, and
Hello, I am trying to send some lines of text through the JSON body of my POST request using Airtable API. I want to add that information in one of the Long text field inside my table. In case of normal characters it works fine but I observed that whenever my text contains double quotes or new lines, the API call gives error with HTTP status code as 422. I did a bit of research and found that I need to escape those with a backslash for eg. new line as \n and " as \\" so that my request body is json compatible. However as my text could contain any characters that we can type, I am unaware of how many different characters I will need to escape to parse my request body successfully. I am currently thinking of some function that can help me escape my input text. I am vba developer but my knowledge about working with JSON and APIs is limited so any help about what characters need to be escaped and best way to make it possible will be much appreciated. Thanks.
Hi! We are trying to link to records on insertion with an automation and script We created the variable RecordID which has the AirTable Record ID from parent. This is the script in the child: await tblOportundiades.createRecordAsync({ “Imported”:[{id: inputConfig.recordID}], }) we get an error: Error: Field “fldlpc151KwO4hjfd” cannot accept the provided value. at main on line 36 We have done in other record and works fine, not sure what this error means. Anybody have an idea?
Hello, I would like to retrieve a specific record based on a field and not on a record ID. I thought about a formula but I am scared it will be slow. Alex
Dear all, Hope u r fine … We r a group of physicians conducting randomized controlled trial for treatment of anemia. We’re using Airtable as management system of the trial. On other hand, we’re using an electronic data capture platform to store participants medical data (Castor EDC) … We need both platforms to synchronously work together. In other word, once a record has been created/updated in Castor EDC system, same record be created/updated in Airtable (an vice versa). I’ve tried API but it has steep learning curve :pleading_face: :pleading_face: Both platforms provide API configurations (Castor EDC and Airtable)… Could u help to solve this problem? Thanks :blush:
Hi, I am investigating an issues with response time from Airtable REST API and I need some help with a strange behavior I am getting. We use the API a loot to integrate our database with clients using a GraphQL > Airtable proxy developed by us and recently we are getting a loot of requests with high response time wich causes a loot of response timeout in our serverless endpoints. Bellow are some requests I made on our MASTER database: → Catálogo GET /v0/app0U83sn3JtVRfrH/Cat%C3%A1logo?pageSize=32 [200 OK, 20.56KB, 9.7s] → Catálogo/ID GET /v0/app0U83sn3JtVRfrH/Cat%C3%A1logo/rec05hJb37zHtFj4D [200 OK, 2.01KB, 16.7s] → Pedidos GET /v0/app0U83sn3JtVRfrH/Pedidos?pageSize=18 [200 OK, 13.71KB, 6.8s] → Pedidos/ID GET /v0/app0U83sn3JtVRfrH/Pedidos/rec04Tl5QF1bg5MZP [200 OK, 2.46KB, 4.1s] → Status dos Pedidos GET /v0/app0U83sn3JtVRfrH/Status%20dos%20Pedidos?pageSize=91 [200 OK, 55.56KB, 4.2s] → Status dos Pedidos/ID GET /v0/app0U83sn3JtVRfrH/Status%20dos%20Pedidos/rec0Vc9mFOCVYWNma [200 OK, 2
I’m trying to duplicate a row via a mobile device (iOS). I noticed there wasn’t a way to do it explicitly through the interface, however, I am looking at implementing a workaround via a button which calls a script. This being said, is there a way to duplicate the current record verbatim via a script?
Nice to meet you. I want to connect Airtable data to Tableau using Tableau’s Web Data Connector. However, the following message is displayed and it is not working. An error occurred while communicating with the data source The web data connector returned invalid data. Error code: 95BE3012 An error occurred while creating the object for class TableInfo. The input data for any of the contained objects is invalid. Either invalid data are present or required fields are empty for class ColumnInfo. Required fields and each data types are: {(Name:‘id’, Type: QString, IsRequired: true), (Name:‘dataType’, Type: QString, IsRequired: true), (Name:‘alias’, Type: QString, IsRequired: false), (Name:‘hidden’, Type: bool, IsRequired: false), (Name:‘description’, Type: QString, IsRequired: false), (Name:‘isPrimaryKey’, Type: bool, IsRequired: false), (Name:‘foreignKey’, Type: QVariantMap, IsRequired: false), (Name:‘columnRole’, Type: QString, IsRequired: false), (Name:‘columnType’, Type: QString, IsR
Here is my script. The goal is to copy a value from a field into another field, but the field variable is dynamic. The fields do exist and will match the fieldvalue input variable. However, i don’t seem to be able to update the record by using a defined variable. Here is my script: let config = input.config() let recordId = config.recordid let name = config.fieldvalue let table = base.getTable(“Verifier / Trainer Body”) let query = await table.selectRecordsAsync() let record = query.getRecord(recordId) let field = table.getField(name) let fieldval = field.id console.log(fieldval) let value1 = record.getCellValue(“VB Total Score”) let copy = await table.updateRecordAsync(record,{fieldval:value1}) Thoughts?
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.