Need development and API help? Ask your questions here!
Recently active
Hello all, I am using AirTable as the data store for a MVP version of a mobile app built with React Native, and as the content creation / management application. So far, I am using the fetch API, and REST calls for CRUD operations on the data. I did this in order to get going fast, but am not handling things like: HTTP Status 429 rate limiting and retry. Deletes of more than 10 records at a time being “batched” The Javascript client documentation sats it handles some of these things, and runs in Browsers and NodeJS. I cannot find any mention of React Native in the documentation or support in formation. I’ve looked at the Typescript code in Github, and everything appears ready to be deployed inside a React Native application, but … I don’t KNOW it works. Has anyone actually used the AirTable API client in a React Native application that is using Expo? Tested it on iPhones and Android devices? We are moving very fast, and I don’t want to waste time with the Client if it doesn’t work w
Has anyone else experienced this? I have a JSON object I am trying to fetch from Google Scripts Web App. It works great in the Block Script editor, but when I try to use the same code in the Automation block I receive this error: TypeError: Response status was 302 ‘Moved Temporarily’ but redirect mode was set to ‘error’ This error is referring to the Google Script URL.
Hi all, Is there a way I could pass markdown - result of script run to automations? Like in the example here where the output table could be send in an email?
I have a column with text that I send out as tweets. Sometimes this column has more then 256 characters and cannot post to Twitter. In those situations, I’m hoping to split the column into two so that I can send out two separate tweets. I was using SPLIT(text) however that splits based on character count and sometimes it breaks the words in half. I’m hoping to split the text without breaking the words. Unsure how to use it with Airtable Scripting block. Can anyone help me use this within Airtable?
I have a Google Spreadsheet that has 75,000 cells in it. I have created automation using Zapier to create, read, update rows on sheets. Sometimes, I get the “Read operation timed out” error by Google Sheet on Zapier. I got suggestions like Airtable is better than Google Sheet to handle large databases. I have been using Airtable for other projects, but not sure if it’s any good to handle large databases. So my question is, what’s the total cells/rows limit that Airtable can handle in integration with Zapier?
Has anyone managed to able to give any hints on how to write a script to display a table contents as a table, along with images? Is there any way to include a a button or another interactive element to allow users to pick a certain record from the output-generated list, and process the record the user has picked further in the record, i.e. to create an entry on another linked table ? As a workaround, i added a button which calls a script that does links the record to a linked table, into a view that i am displaying with the list records app - but when hitting this button, it first opens the record in an expanded view, from where i have to hit the button again, then it triggers the scripting module, hence closing the List-View App, and doesn’t return to the it any more. Meaning that the user has 3 windows popping up, clicks the button twice and ends up somewhere else than he/she has started. Running the whole operation (displaying the table plus triggering the interaction) from the sam
Does anyone know how to include a script that includes moving records with formulas and drop-down options to another record from this, I’m stuck and it keeps giving me this error message: ERROR P: Can’t create records: invalid cell value for field ‘Answer Option Type’. Could not find a choice with that ID or name at main on line 6 This is the script: let table1 = base.getTable(“Table1”); let table2 = base.getTable(“Table2”); let result = await table1.selectRecordsAsync(); for (let record of result.records) { if (record.getCellValue("Move to Table2")) { await table2.createRecordsAsync([ { fields: { 'Question Text': record.getCellValue("Question Text"), 'Sector': record.getCellValue("Sector"), 'Logic - Parent Question' : record.getCellValue("Logic - Parent Question"), 'Answer Option Type': record.getCellValue("Answer Option Type"), }, } ]); await tabl
I’d like to retrieve types of columns in a table and their metadata, e.g. type, select options and colours. Is there an API for this?
I’ve got a base I use to track my clients and the coaching sessions I have with them. Two tables: Clients and Sessions. The Sessions table has a link to the Clients table to display the client name. The Clients table has various data about the clients themselves including a checkbox field called Paid that tracks whether this client is a Paid or Pro Bono client. (The status of the checkbox could change over time. For example, a pro bono could become a paid client at some future point.) The Sessions table has data about the date, length of the session, etc. including whether it was a paid or pro bono session. Here’s what I’d like to do: When I create a new record into the Sessions table, I want Airtable to check the Paid field in the Sessions table if that client has a check in the Paid field of their record in the Clients table. I have two input variables: recordId which is the ID of the newly created record, and client which is the ID of the client in the newly created session record.
I’m working on a project that uses multiple bases that all have one table that is identical. I’d like to loop over all of the bases and output the content. I’m missing something for getting this working without creating nested arrays within arrays. I use this to get the contents currently: const records = await airtable .base("appBaseId01")("Case Overview Information") .select() .firstPage(); const details = records.map((detail) => { return { city: detail.get("City") || null, name: detail.get("Name") || null, state: detail.get("State") || null, }; }); return { props: { details, }, }; Does anyone have a recommendation for querying for all of the bases in an array like ["appBaseId01", "appBaseId02", "appBaseId03"] and outputting a single array of objects with the contents of each?
Hello, Is there such thing as a fetch put? I am needing to do a put on an external api with the airtable scripting app. I was wondering what the best way to do it is? The external api is expecting a put method. I have successful used fetch for get and post but can’t seem to figure out the put. Thanks in advance!
Over the weekend I was helping a non-profit that’s organizing food deliveries from restaurants to hospitals as part of their COVID response efforts. They have a table of Orders. An order specifies the restaurant providing the food, the hospital receiving the food, a start and end date, and the days of the week to repeat the order: We wrote a script that goes through these recurring orders and creates a delivery record for each day that the order should repeat: Here’s the script: const ordersTable = base.getTable('Recurring orders'); const deliveriesTable = base.getTable('Deliveries'); const orders = await ordersTable.selectRecordsAsync(); const dayOfWeekToNumber = { Sun: 0, Mon: 1, Tue: 2, Wed: 3, Thu: 4, Fri: 5, Sat: 6, }; for (const order of orders.records) { if (order.getCellValue('Deliveries')) { // Skip it, the deliveries were already created. continue; } const name = order.name; const startDateString = order.getCel
Hello everybody! I’m not familiar with javascript and less with data types… I’m trying to accomplish the following: When a record is created. Check a value of a linked field. (Marked red in the picture) If it’s value is “Vinos” then trigger a webhook. How would you do it? I can get the record id, trigger the webhook, but I’m not able of checking the value of the field. I know it should be very easy Thanks so much!!
Hello, I am using the input.textAsync() to ask the user to choose a supplier. When I run the script, the input field pops up fine but the input field is disabled. Also, the next button is missing as well. I do have the input in an if statement after I iterate an array to generate the string listing the suppliers. Not sure if that could be the issue. When I use the input.textAsync() at the top of the script without any nesting, it works fine. Anything I can do to fix this? I am using the Chrome browser
Hey I’m trying to update a few fields on a record. Same process each time. So I have a for loop that goes through an array with a combo of the field I want to update and the values to put in. A basic version looks like this: Array = [{“Field”:“field 1”, “value 1”: “something”}, {“Field”:“field 2”, “value 1”: “something”}] For item in array do: Some processing Table.updateRecordAsync(RecordID, {"${variable string with field name}": another variable value}) However I can’t get the field "${variable string with field name}" to take a variable no matter how I set it up. I have tried every combo of ’ " { [ around the variable. And tried constructing the variable separate as a full string to put in but to no avail. Is it possible to use a variable in the field? How could I do this? Many thanks.
Hello Everybody, I have created a scripted code that populates episodic shows from season level. so I have Show Title, Season, Eps count, Start Date, Pattern Release per Week So this script gives me each date for each episode depending on the pattern release /Eps count and start date. The Scripting app works perfectly except that it keeps freezes at some point Like I have 2000 Eps to create, sometimes, it stops at Episode 560, other times it stopped at 916 and it always stops at the same count of episodes, I tried to make sure that everything is in a text mode, no special characters and no odd thing in the lines still, stop at the same point. 1- Can you please help me figure this out, Why does it stop at all? 2- Can anyone help me in modifying the code, If anything Changes in the fields that are included in the script like " Release Date", “EPS”, “Origin”, Windowing", it modifies only on these fields, keeping the same record, not to create a new record with the updated ones. let impor
Hello, I’m trying to create a filterByFormula that finds a certain value in an array. Here is an example. I have this array: Using filterByFormula I want to get the values that have exactly the word Azure. So in this case it should get only the first Azure, not Azure Cloud. I tried to use FIND OR SEARCH but this 2 return both these values. Some kind of workaround I found doing the formula like this: AND(OR(FIND('Azure,', ARRAYJOIN(Skills,',')))) So I’m converting the array into a string and then search for Azure,. Yes, that is a comma :slightly_smiling_face: This way I’m able to select the Azure value. But as you can see in the example above I also have Python and [emptyspace] Python (the brown one). If I use the above method I only get the first Python even thought I should get the second one too. This one is weird. I’m not sure why this is happening to be honest. Is there a function to find a specific value in the array ? Not using SEARCH or FIND? Thanks
I’m not sure what I’m doing with remoteFetchAsync, but when I make the same API call in Postman I get a response with the list of warehouses. When I do it in Airtable I just get a status. What can I do to get the response back?
I am using Airtable to track food products that are added to a pallet and then record the date codes for shipping. I would like to have my employees be able to select one of our 20 products from a list and then input the code date for that selected product as they build the pallet. There may be up to 10 products on a pallet. Is this possible? Single Select Product 1---->Input code Date (020221) Single Select Product 2---->Input code Date (050323) Single Select Product 3---->Input Code Date (061926)
Hello, I have a script that is intended to copy a set of predefined task records whenever a new project is created. The problem I am running into is with the multiple-select columns. The documentation says that I should be able to write to a multi-select column using the selection ids, but I always get this vague error when testing despite having no syntax/linting errors: “ERROR Error: Field “Phase” cannot accept the provided value. at on line 30 at main on line 15” Here is my script, plus a picture of the error: // get respective project const inputConfig = input.config(); const project = {id:inputConfig.project}; // get tables const sourceTable = base.getTable("Source"); const destTable = base.getTable("Dest"); // get all template tasks let query = await sourceTable.selectRecordsAsync(); // for making dynamic functionality later // TODO: make dynamic functionality later let cols = sourceTable.fields; let getColName = (c) => { return c.name; }; let colNames = cols.map(getColName);
Hi - If i have company > projects > invoices realtionship in my table and an automation triggers on a company update, what is the best way to find the invoices for that company? I am trying to avoid lookups + helper columns and use scripting instead, currently im doing (in psuedo code): Current company ID (from previous step) Find that record in the company table Get contents of the “Projects Field” For each product.id get the contends of the “Invoices” field" For each invoice.id find the record and get the data I need. I suppose my question really is this - when using linkedin field data is there a quick way to get the record that is linked to or do I just need to get the ID and then find the record in that table like I am already doing?
I’m trying to access the metadata but I keep getting a 404 error. I have a feeling that the problem is with the headers. headers = { "Authorization":"Bearer My_User_API", "X-Airtable-Client-Secret": "Meta_Secret_Token" } response=requests.get("https://api.airtable.com/v0/meta/bases/My_BaseID/tables", headers=headers) # I also tried response=requests.get("https://api.airtable.com/v0/meta/bases", headers=headers) Any ideas?
Dear Airtable Community, Seems as though the tenacity here never fails and I wanted to get some help on something I think a lot of people would take advantage of. Is it possible to write a script, either on Airtable or maybe with even another tool, that automatically presses other buttons in a table for all existing records? The buttons I want to be automatically pressed are all Zapier Webhook automations relative to each specific record, but I may need up to 200 of these buttons pressed at once and am looking for the best automated solution. Thank you to anyone who can offer some guidance!
Hi, I am reading a date from a field and want to include it in an email (as part of an automation). How do I go about converting the date that looks like this “2021-02-10t11:30:00.000z” into something like this - 10/02/2021 11:30am (or similar)? Thanks!
I am working on putting together a “sync” with another system to our airtable base. Basically i want to be able to pull a GET request on a members table on the field “CRM AGENT ID” and it find all the records with the matching ID’s. for example. I check a CRM system and find these agent ID’s: 3, 60, 67, 30. I then want to find those ID’s corresponding airtable records with a GET request. Then update all of those records with a PUT. Where i’m running into issues is the URL having the right search formula to search the field for all the agent ideas and return them all. Hard to explain, but how can i do this?
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.