Need development and API help? Ask your questions here!
Recently active
I am trying to use Promise.all to asynchronously get data from an array of urls. I’m fairly new to promises but as far as I understand the below code should work? The code executes but no response is logged from the promise.all Promise.all(urls.map(u=>fetch(u,options))).then(response=>{ console.log(response[0]) }
Hi guys, I was thinking about developing an Airtable extension myself, however, I couldn’t help my curious self but wonder how Airtable is actually integrating the extensions under the hood? How did they implement it so that once I run the Blocks CLI and host my local dev environment, I can connect my live Airtable Base with my locally hosted app? (See here for more details) And once I finish building my application and publish it to the marketplace, how is my finished app integrated to Airtable? Do they bundle up the finished extensions and import them as npm-packages? Would love to have some discussion on that topic :slightly_smiling_face:
Reading through the API help, and searching these forums - I’m not seeing a method for returning all Field ID’s or Names that are used within a Table View. Is the only way to construct a record object using the desired fields found within a view, is to manually type out each of the fields, one by one, in my script / automation? That’s a real pain - I get that views only return the records within that view + all table fields, but it’s … kinda tough that I can at least retrieve the name/ID of visible fields within a view? What options do I have, apart from manually writing out all my required fields within my script? I’m assuming this applies to the Script Extension, Automation and API calls - Does this same limitation exist for custom extension creation too? I also recall reading about a beta API of sorts that … I think did allow for view and field data retrieval? Is that still a closed beta, and does different API address what I’m researching now?
Hi, I have a few tables that only output 100 rows when using Postman. I’m wondering why. Please help.
Hi guys, It looks like a change has happened overnight - URLs to attachments have changed from this structure: https://dl.airtable.com/.attachments/d656d5c54fbc38ad9195c2f62cd02dae/5eb64051/Supreme_Apex-1120x740.jpg To this structure: https://v5.airtableusercontent.com/v1/10/10/1668182400000/q_tvhAt9ivi_oCjJ5LvWQQ/ghcs73y0Vma8Rz6c7EJaen3sRTVMOCrqmPpkS38kxl2SOiMEE5boOfVOorY5nfQ9PZkrQCYfehg76B4CcI8-MA/1wi2qtg7XnHCVhZhtKjxg_BXwwegwsGxphbPlJRYlao This has broken our API integrations for saving images to WordPress / WooCommerce as WordPress requires a file extension to exist. Has there been an announcement anywhere about this major change?
The Shift Scheduler script/extension has failed ever since the daylight savings time change. I am receiving the following messages: Can anyone tell me what’s going on or what I need to change to make this work again? Our team has begun to rely heavily on this script to check who is available for a scheduled shift. Thanks! Manny
Hi, I have studied the API docs and seen infos on how to retrieve a record, but my need is to get all the infos about a record with a special value in a field - say the 1st found “invoice” with “unpaid” in its status field, so I can act on it on an external system and then update the status to “reminded” for example. How would that work ? Thanks !
Hi all, I am using the Spreadsheet Importer in the Scripting Extension to upload an XLSX file to create new records in my table (“Report Data”). One of the fields in this XLSX report is a Customer ID. That should be a linked field to a table called “Customer IDs”. After going through a few different threads, I declared the following variables to create a “Dictionary” array of the Customer IDs (primary field) & their RecordIDs: let IDTable = base.getTable("Customer IDs"); let IDQuery = await IDTable.selectRecordsAsync(); let IDDict = {}; for (let record of IDQuery.records) { IDDict[record.name] = record.id; } Then when I am mapping the fields I am declaring that field like so: let newRecords = xlsxRows.map(xlsxRow => ({ fields: { 'Customer ID': [{ id: IDDict[String(xlsxRow['Customer ID'])] }] } })); This works… only IF the ID already exists. If an ID is new, I get the following error: j: Can't create records: invalid cell value for field '
Hi! I have an issue I think I might be able to solve with automation but just not sure how. I have 3 tables Providers details, Solutions and Parts. When I create a new Provider record I want to use a trigger to populate the name of the Provider into the Solutions table. I want this to happen 30 times as for each new provider I also have to update the same table with 30 parts. Is it possible to create 30 new records in the Solutions table when a new provider is entered into the Provider details table and them simultaneously pull the 30 records from the parts table into Solutions table. Can this be done with Automation? Thank you in advance
I try to sync all rows of a table to sql database. I wrote script. I use offset to get all records. If a new record has been added to the table, then I cannot get it within the current pagination and i must to run sync from begining. Is it rigth? Is it possible to Continuation of pagination?
Hi, How can I get a Record ID by a VLOOKUP type situation by specifiying email in other words I want to pass email I want to find to API and get the record id so I could use it to upload a field. Thanks!
hello everyone! i would like to write a script. that allows we to creat (generate) a stripe payment link in airtable from pressing a button. this is how it would work : i will inter a price in the (price column) then pressing the generate payment link button will then generate a payment link inside the (payement link colmun) corresponding to the price hopefully this was clear and understandable. please anyone help
I am using the “Create records from multiple select” script. I have a table named “Notes” with 1500 rows. There are two relevant columns. One column is a text field named “Description”. The second column is a multi-select field named “Categories.” I want to create a new table which has a unique row for each Category-Description combination. I effectively got your script to work for one record at a time by pressing “Pick a record.” Rather than using “Pick a record” to run the script on each of the 1500 rows separately, is there a way to run the script across all 1500 rows at once, to create thousands of Category-Description rows? I am open to modifying the code, but was curious if there was a known solution before attempting that task. Thank you!
Sorry, but I can’t find examples of how to use Script block to write rich text formatted text to Long Text field with Rich Text enabled. Any references would be greatly appreciated. Thx!
Hi everyone, Recently I am facing an error with the following code: await myTable.updateRecordsAsync([ { id: record.id, fields: { 'Attachment': [ { 'url': "https://dl.airtable.com/.attachments/63001f29cc9836435b1ac84dd7dba62f/98c345c9/63NHT_2.jpg" } ] , }, } ]); The error It was totally fine before. I don’t know why? Thank you
While scoping a new Airtable solution for a client, the topic of forecasting came up and specifically by employing machine learning. There are many definitions of machine learning and while my focus was to at least prove to myself that a Script Block could perform the forecasting process natively (i.e., without calling out to any external services), I took a stab at crafting a simple data science block to forecast sales by month for the next three years. Setting the Table - Aggregation by Month/Year The sales data exists in a table which includes about 3,000 transactions spanning 2018 and 2019. Instead of using roll-ups or formula fields I decided to see how well the Script Block was able to perform the aggregation of sales by year and month. The objective is simple – total sales by month and year. The performance of this part of the process is blistering fast; about 1.3 seconds. Forecasting Algorithm As I mentioned, there are many AI approaches to forecasting but I self-constrained t
I am a bit of a newb to scripting in general so still learning… But can someone help me parse parts of this text into columns within another table? “Ether Protocol :black_small_square: 0xE2e335Ef26281ae3feaD48d79cF8F35Fb206fB54” For example in one column to include “Ether Protocol” and in another the token address “0xE2e335Ef26281ae3feaD48d79cF8F35Fb206fB54”
When getting a record with a pdf attachment through the Airtable API, I see that the URL of the pdf attachment has the following structure: https://dl.airtable.com/.attachment/<long-hash-code>/<short-hash-code>/<filename.ext> Attachments thumbnails have the following structure: https://dl.airtable.com/.attachmentThumbnails/<long-hash-code>/<short-hash-code> What is the long-hash-code and what is the short-hash-code? Can I assume that both hash codes will change when the pdf if replaced? Can I assume that both hash codes will not change unless the file was replaced?
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?
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.