Need development and API help? Ask your questions here!
Recently active
I have linked voiceflow via API with airtable, this works. I would like to filter via FilterByFormula in the parameters, if I then filter on just the order number it works fine. If I filter on just the email address it works fine, but if I filter on both I get the error INVALID_REQUEST_UNKNOWN, with the message Invalid request: parameter validation failed. Check your request data. How can I solve this?
Hi! We experience an urgent issue while airtable status page says everything functions normally. Support seem to be sleeping, so I ask here if anyone know any kind of solution that we can do. What we experience:- No automations are running- Automations page doesn't respond saying "An error has occurred" - Different error codes every time. Here is one. Error: pgl8szkfLTtXp41CN- API doesn't respond- Table views doesn't loadAnything we can do, but to wait for support?
Hi,I want to search for 1 item in a table which contains multiple items in a cell - apple, banana, grape.The filterByFormula with the = only works if there is only 1 item in the cell. If they are multiple items, I get an error.I tried using "contains" and "like" but they don't work. What should I use?ThanksSteve
Is it possible to pull data from Harvest into Airtable? Specifically I am looking to transfer costs (Time and Expenses) in Harvest into two fields in my Airtable base. I do not see this functionality natively available with Zapier or Make, but am curious if anyone has found a solution. Thanks in advance!
This forum has been incredibly helpful, so I thought I'd keep asking questions. Next up is why filterByFormula doesn't seem to work in my node app. However, the formula works in the Airtable UI and when used in an HTTP request via the API. const base = new Airtable({ apiKey: 'xxxxxx' }).base('yyyyy'); const matchingRecords = []; await base('tblbfJeKQo52GnLWD') .select({ filterByFormula: '{project_id}="3986271"' }).eachPage( (pageRecords, fetchNextPage) => { pageRecords.forEach(record => { console.log(record); matchingRecords.push(record); }); fetchNextPage(); }, err => { if (err) { console.error(err); return; } } ); console.log(matchingRecords); The above returns `matchingRecords` as an empty array. However, https://api.airtable.com/v0/app49uIs2F0Ca2ES3/tblbfJeKQo52GnLWD?filterByFormula={project_id}='398627
I'm seeing very slow requests when fetching a single record from a table with 4 records.Very slow as in more than a minute.What am I doing wrong?
Suppose I have the graphs stated below.Chart #1: qty. returns versus weeksChart #2: qty. returns versus items during week 12Chart #3: qty. returns versus items during week 11Chart #4: qty. returns versus items during week 10Chart #5: qty. returns versus items during week 9etc.I want a dashboard where, while I'm on chart #1, and I click a bar over week 12, then chart #2 appears next to it showing the returns per items during week 12;if I click a bar over week 11, then chart #3 appears next to it. That way I only have two charts at one time, instead of thirteen on a dashboard.If possible, I would like to keep going with a third chart. When chart #2 appears, if I click an item, e.g. blue towel, then a third chart shows qty. of blue-towel returns versus weeks; if I click another item on chart #2, e.g. water bottle, then the third chart shows qty. of water-bottle returns versus weeks.
Does anybody else notice changed behavior when uploading attachments with the API?AT used to fill the file name property by default, but since last week I'm not getting any value when reading the attachment field. Older attachments have the "filename" as usual, newer uploads have no value in the JSON.Can anyone confirm please?Thanks in advance!
Just to be clear. When I add a lookup field to a table, that field is not accessible direct through `getCellValue`, correct? I still have to get the id of the corresponding Linked Record field, and do another lookup to get the value of the field that matches my Lookup field. Correct? Just want to make sure I'm not crazy, because it sure seems like extra work for what could be available directly in the table itself.
Hello AirTable team,Hope things are good. Our team recently decided to try using AirTable to automate a simple referral management process. The idea is super simple:We have an AirTable database where leads are managedWe've created an interface on top of that database for partners to see status of their leadsWe've published a link to that interface so you can access itThe problem is, whenever our users are trying to work with that interface, they are always getting the "lost connection to the server" popup - which is "harmless" (i.e. if you ignore it - everything works just fine), but it looks "scary" enough for users not even to try to proceed. You can see that experience in an the demo video below —Direct link to the same video: https://vimeo.com/928813339/43acd1bbd7Do you guys have any idea what this could be? What is interesting, it doesn't seem to happen to "long-time Airtable users" — i.e., if you "test" with your existing user account (and don't go through the AirTable regis
Hi, I need to create a script that generates a JSON with the information of a record, I have done many tests but I get stuck with the easiest thing, assign the values of the fields to the JSON. Any idea of help or example, thanks a lot. let inputConfig = input.config()let table = base.getTable("CONTRATOS");let record = inputConfig.recordId;// Seleccionar registro de la tablaconst row_rec = await table.selectRecordAsync(record)// Extraer los campos correspondientesconst codigo = row_rec.getCellValueAsString("Codigo")const url = 'https://hook.eu2.make.com/xxxxx'const token = ''const body = {"strBodyRequest": {"BPCode": {"fuente":"CONTRATOS.Código (from Cliente) (from Venta)","valor":codigo},}, }const options = {method: 'POST',headers: new Headers({ 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }),body: JSON.stringify(body)}let response = await fetch(url, options);const result = await response.json();console.log(`Got ${response.status} with body ${JSON.s
I have my personal access token with all the scopes, but when I try to create a new entry the api is returning this error: "type": "INVALID_PERMISSIONS_OR_MODEL_NOT_FOUND", "message": "Invalid permissions, or the requested model was not found. Check that both your user and your token have the required permissions, and that the model names and/or ids are correct."
I have an issue to retieve only specific fields from a aitable record const fieldsToRetrieve = ["BlogSL1", "BlogSL2", "BlogSL3", "BlogSL4", "BlogSL5", "BlogSL6", "BlogSL7", "BlogSL8", "BlogSL9", "BlogSL10"]; const response = await axios.get(`${BASE_URL}/appDP6faKvOeSxUKs/${queryKey}/${id}`, config);
Hi there, Can you help me, please? I am trying to run a script and it results that the record is not found, but it is there. I checked everything - the correct name of a table and view but it keeps giving this warning. Any tips?Thank you
We have an automation through Make.com which uses an API call to import data into Airtable. This has run for 18 months without issue. We are recently getting an error 'Field cannot accept the provided value' The data is a text string which begins with a hash e.g. '# 100'. The field is not a computed or linked field, it is a single line text field. I cannot see what has changed that this data cannot be accepted now. Any help?
Hi,I have an automation in Make.com that adds a record to a table in Airtable. The connection uses an Airtable Personal Access Token. I have given the token all available permissions in Airtable, but am still receiving the below error message in Make.com:[422] Insufficient permissions to create new select option ""Microsoft PowerApps""I suspect it is because I am trying to add an option to a Multi Select field that doesn't already have this option specified in Airtable. Would appreciate any feedback on where I'm going wrong on the permissioning / access approach - it seems like this MUST be possible.I should add that I am currently on the Free plan; not sure if that has an impact.Many thanksBrett
I have the following code: "use server"; import { revalidatePath } from "next/cache"; import { z } from "zod"; import Airtable from 'airtable'; Airtable .configure({ apiKey: 'PAT KEY' }) Airtable .base('ID'); export async function registerSignUp(prevState: { message: string; }, formData: FormData,) { const schema = z.object({ email: z.string(), }); const parse = schema.safeParse({ email: formData.get("email"), }); if (!parse.success) { return { message: "Failed to sign up" }; } const data = parse.data; try { await Airtable.Table.create(data); revalidatePath("/"); return { message: `Signed Up!` }; } catch (e) { return { message: "Failed to sign up" }; } } So all of the above, obvs with the PAT key and ID added works locally but not on production.I am using Vercel free tier to host my site and wonder if that is the problem. Or on airtable there is some CORS or domain whitelisting somewhereupdate:I have added a console log to the catch section for the error thrown and got
I've been trying to get this to work using a formula but haven't figured it out...What i want: I have a table that contains 1000 records, 12 of which i'm displaying on the web frontend via softr.io. Now what i want is to randomize the 12 records that will be displayed. This does not necessarily need to be randomized each time the page is refreshed/the API call to retreive the records is made. It could also randomize every minute or so.I guess randomisation on refresh/load would have to be made via the API call somehow. But if the API call always retreives records based on a static filter, I would have to randomize the results that the filter retreives on the Airtable side.Any idea how to do this?One simple solution I thought of which should semi-randomize every time the result of NOW() is updated in Airtable: Number records with autonumber. Take the seconds from NOW() and calculate based on the second (which is a value between 0 and 60) which block of 12 records should be taken. I.e. i
Hi there, here is my cURL as mentioned in the title i'm having issues just on iOS while on Android it works with no problem.https://api.airtable.com/v0/appOwBv51ihqo****/TableName?filterByFormula=FIND("february",{Mese%20Nome})=1&sort%5B0%5D%5Bfield%5D=Created&sort%5B0%5D%5Bdirection%5D=descStatus: 422Error: undefinedI'm really confused, hope you can help
The required parameter for the base.createTableAsync call is Fields, but when I put a dynamic list of Fields in it, it says that it's not the right type, when it really is. Is there a workaround? I do not want to hand-key in all of the fields, which may change fairly regularly. Goal: Duplicate the Trainees tableBlocker: base.createTableAsync's Fields parameter does not accept a dynamic set of Fields
I have had to change my zapier integration with Airtable because of the API deprecation. It looks like the "API Requests (Beta)" should be an easy transition with the authentication method updated. However, when I put the same URL into it, I can't get it to work and I am not sure what I am doing wrong.My intention is to return the single top record of a view- if there is an alternate way, I could do that too. But I don't know of a way to limit the view to a single record within airtable. This was working great via API.... I just need it to work with the new authentication as well! Any advice as to what I am doing wrong, or an alternate solution would be much appreciated!
Hello, I am trying to set up a complex script where I am trying to pull data from three different sources and merge the datasets in Airtable. Additionally, I am trying to enable some CRUD functionality that will allow us to manage the records created. Because of the complexity of the code I was trying to abstract the code and make it more manageable over the long run. I was breaking down the data "fetches" from individual sources into their own scripting blocks and then have an additional block where all the CRUD functions are hosted. Questions for the community?1. Is it possible to share variables between Scripting Extensions?2. Is there some localStorage/Cookie setup I can implement? These cookies cannot be on my browser but rather on the Airtable server so that it can be shared by multiple developers.Any help or link will be appreciated. Thanks in Advance R.
Hi there,I want to upload image from Airtable api to wordpress but the issue is the airtablo attachment url is without the extension due to that it is hard to upload it in the wordpress.This is the URLCan someone please help me on this?Thank you.
I have an automation to run script when a unit enters a view. The script is working (in general) but not returning the value it should. The script looks at an occupied unit from one table and using a set of pre-defined parameters, makes a suggestion for a vacant unit from another table that it could be assigned to. If one is not available it returns a value of 'No suitable vacant unit found. Unit needed.'Here is my script: // Define the names of your tables and viewsconst OCCUPIED_TABLE_NAME = 'Unit & Relo Data';const VACANT_TABLE_NAME = 'Available Units';const OCCUPIED_VIEW_NAME = 'Unit Search'; // The view that filters occupied units// Function to fetch records from a specified table and viewasync function fetchRecords(tableName, vie
I've got a little script on Zapier where if somebody registers for a Zoom meeting, we add them to Airtable. To avoid duplicates, I search for to see if we already have a record for the registrant with a query like this:OR({Email 1} = "{{email}}",{Email 2} = "{{email}}",{Email 3} = "{{email}}",{Phone 1} = "{{phone}}",{Phone 2} = "{{phone}}",{Phone 3} = "{{phone}}")However, if Airtable doesn't find the email in any of the three email columns and the {{phone}} is blank, then Airtable will return a result for a record with a blank phone number, which is obviously not what we want here.Is there any way to construct a query that will not return a match for an empty phone number?Thanks!
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.