Need development and API help? Ask your questions here!
Recently active
I'm developing an api in which Airtable will request information, I was configuring cors for the api to accept requests from airtable, but I don't know which domain they use
Probably a simple solution, but I can not figure it out. I am using the following script to try to get a list of all of the records in a specific table.let table = base.getTable("Codes");let query = await table.selectRecordsAsync();console.log (query) When I run this, I get the following error O: No field with ID fldwfud1d0wv3rdVD in table 'Codes' at main on line 2When I run this same coding using one of the other tables, it works as expected. Any ideas on how to fix this? It is getting in the way of the larger script I am trying to write.
Hi there, This question is for the Airtable team. I see that you are using browserify to bundle the block code, would love to also be able to bundle external css files with the block, instead of loading them asynchronously using loadCSSFromURLAsync (which also makes development and deployment more complex). There are quite a few browserify transformation packages that can make that happen, but I haven’t been able to make them work so far, when trying to control browserify transformations from the package.json file. Here are the packages I tried / found so far: brfs - doesn’t work with es6 modules brfs-babel - doesn’t do the transform, for some reason, even when i add {"browserify": {"transform": ["brfs-babel"] } } to package.json browserify-css - haven’t tried it yet Using loadCSSFromString and providing the css itself isn’t the correct way since then I can’t easily edit it as css in a code editor or share it between blocks. Would love to know how Airtable would recommend doing this.
Hi, We are looking for ways to pull data from our Linnworks.NET account (basically and order and inventory management platform) to Airtable. So far we have been using MiniExtensions to import csv files with data exported from Linnworks to Dropbox or FTP server. This has worked well, but MiniExtenions have a limit of 10 instances of their csv import app, meaning that we are limited in the type of data we can import. We have already hit this limit. I realise that the best solution for transferring data would be via api, but I am not yet very familiar yet with writing api calls. The big stumbling block to this going ahead, from what I can see, is managing Linnworks Authorization. Linnworks Developer Resources - API Home My question is a general one. Does Airtable scripting allow means to acquire auth tokens and use them in subsequent calls to Linnworks.NET for data, or would we need a 3rd party app as a go between? Thanks in advance for any help or insights here. Dominic
I am building a web application for my students using Node.js/Express that displays information from an Airtable base. Instead of embedding a table of news stories, I want to pull several fields from the table and insert them into the DOM so I can design the display of information. I've been able to send 3, 5, 10 stories to the console, but when I try to send a second story to display on a web page, I keep running into this error: TypeError: Cannot read properties of undefined (reading 'offset') which points to part of airtable.js that compares result.offset with params.offset. I've tried to find an offset in the json but I don't see the key or values beginning with itr.I tried to call record.offset but it is undefined.Several community posts about offset explain how to find more than the maximum 100 records, but I'm getting stuck on the second record.I found Offset property missing in API response as an open issue on Github from 2021, so maybe
When adding data to Airtable records using Softr, I encounter a significant delay of around 4-5 minutes for the data to appear upon refresh if the records contain foreign keys referencing another table. This delay contrasts sharply with the immediate addition and display of data when records are added to a normal table without foreign key references. The presence of foreign keys seems to introduce a lag in the synchronization or processing time, leading to a noticeable delay before the updated data is visible. This issue may be attributed to the additional steps required to validate and integrate the foreign key relationships within the database, causing a slower response time compared to simple table updates.
I am using Voiceflow to retrieve data and send it to Airtable via the API. However, I keep encountering the above error despite my request appearing to be correctly formattedThis is in my body. { "records": [ { "fields": { "first": "test", "second": "test2", "tel": "000000000", "email": "test@test.com" } } ] } And in Airtable my table looks like this: firstsecondtelemailAny help would be good, thanks
Hello ! Is there a way to download the documentation of the API in an OpenAPI / .yaml version ?Thank you!
How to access all WordPress posts using AirTable using REST API?
Hi, I am getting an error when using POST via Postman. I am copying the example exactly from the API documentation and changing the authorization key. I have tried changing the content type, modifying the fields, but nothing worked. GET method is working. Why is this?
Hi AllI am having issues with linking information between tables.I have the below linked:1) Master Order Table 2) Order Line ItemsI wanted to create a new table called Purchase Orders (POs) which is just relevant purchase order information (excluding any sell price etc from the master order) so i can send the PO to my suppliers.The issue i am having is that the information on the POs table is not linking with the Master Order or the Order Line Items tables as per attachments. Please help me with solving this.Thank you!
When mapping a WordPress CF7 with airtable, Airtable allows Contact Form 7 to write into the field Email if it's an "Email" field-type, but not if i convert it to a linked table.I would like that the field "Email" inside of the table Messages links to a table named Email, where Email is the PK. Like this we'll be able to see all related messages.Unfortunately CF7 outputs an error with this setup. Is it there a workaround? Or should be build an airtable automation that reads the contact form user input that goes into the (unlinked) Email field and updates another field named LinkedEmail?So, either CF7 links messages to the Emails table, or we will have to auto-link using an automation.What's your opinion on that?
Thanks in advance for the help! I want to find a way to use an automation to clear out a pre-filled field when a record matches conditions. For example: We have a check column to see if a task has been completed. We also have a collaborator column to see whom the task is assigned to. I want to create an automation to just clear the collaborator column when the task was completed without deleting the entire record (for archiving purposes). Any way to do this? Thank you!
I'm trying to use the options from a single select field as an 'input' selection in my script. I'm not sure if Airtable allows this. So far I have: let selectTable = base.getTable("Courses"); let selectField = selectTable.getField('School Year'); let schoolYears = selectField.options.choices; console.log(schoolYears) Which provides Then I make an array from just the names: let yearNames = schoolYears.map(record => ({name: record.name})) console.log(yearNames) Which gives:I'd like to then use those choices as an input: let selectYear = await input.buttonsAsync('Pick a year', [yearNames]); But this gives an error that you need a string. Would this be possible to use? It seems to want a full object literal list and not a variable like this.
I can call my endpoint (with hardcode variable) it's successful in requesting ( got a response ), but when I try to use a variable, params from the record. It's stuck on the CORS problem, but I am not sure why,(both variables are the same, the difference is the one from the variable does not worked,and one from hardcode is worked)//if I used hardcode in data, it work fine.const requestApi = async (params) => { const myHeaders = new Headers(); myHeaders.append("api-key", "xxxxxxxxx"); myHeaders.append("Content-Type", "application/json"); try { const requestOptions = { method: "POST", headers: myHeaders, body: params, // JSON.stringify({ // "pid": "xxxxxx", // "firstName": "xxxxxx", // "lastName": "xxxxxxx", // "birthDay": "xxxxxx", // "laser": "xxxxxx" // }), }; const response = await remoteFetchAsync("https://xxxxxxxx", requestOptions); const result = await response.text(); console.log("Record updated successfully."); } catch (error) { conso
Hi,I am trying to run the following script based on my screenshots and I am getting an error “Your script exceeded the 512MB memory limit.”.What am I doing wrong and how can I fix this? Thanks!
Dead link!
I have a base that has a number of junction tables. For example a product links to a product assembly item that links to a product assembly with multible product assembly items which links to an estimate.Its very cumbersom to have to go through each of these tables and use the forms to add data to each indivdual table. I wanted to create a single form that lets a user select products and then creates all the related junction tables.I was wondering if anyone had any work arounds for being able to add data to multible tables from a form. Right now forms do not allow for record creation or buttons with scripts, making it hard to create a new junction table entry that relates to the record being created.The only work around I can see is to create a seperate dummy " input table" that has a number of records related to each ipnut action I would like. Instead of creating a record users would just be editing the record through an interface. There would then be a script button that
Here's a weird one. So I had am automation set up using the airtable "Slack: Send a message" action and it always worked great. I add the slack workspace account, authorize, then it shows a chanel list of all chans, I pick my chan in the workspace. Good. We created a completely new slack workspace since our product got split to another business and now I need to make this message get sent to the NEW Slack workspace. Simple. Go into the automation, remove the old Slack workspace integration, add the new one with the NEW slack URL and new user/pass, and then... wait... It is showing the OLD slack channel list from the old workspace. The channels are totally different so I must have made a mistake. I remove the "Slack: Send a message" action completely, then to Account -> Integrations section to remove the integration from my entire airtable profile. I notice that this integration DOES show the name of the NEW company, which isn't looking promising (since that means I did log into
Hi! very new to using Airtable. I am trying to find out if it’s possible to use Airtable to populate users profiles for a small 30 members community. I am trying to display name, title, image, etc.. or would I be better using something I am more familiar with like Supabase. any thoughts or advice would be appreciated. Steve
If you’re using a rollup field to summarize linked records with ARRAYJOIN(), the array’s order is determined by the order of the linked records. I created this script to automatically sort linked records in a cell. My use-case is to summarize interactions with companies. I sort by descending order to show the latest summary on top. Enjoy! // Set a trigger: when a record is updated -> watch the linked records field // Set an action: run a script // You should set the record ID of the triggering record as an input variable // Grab the triggering record's ID let inputConfig = input.config(); let recordID = inputConfig.recordID; let table = base.getTable("tableName"); // Load table let queryResult = await table.selectRecordsAsync(); // Get all records in the table let record = queryResult.getRecord(`${inputConfig.recordID}`) // Find the one with the ID from the input // Get the linked records array let linkedRecordsArray = record.getCellValue("linkedRecordsField"); // Sort the link
I'm creating a script between 2 tables: 'Engagements' and 'People'.Engagements is a list of event attendancePeople is a master list of peopleI have a script that, using the attendance sign up info (name, email), tries to find a matching person from the master list. (This step is part of a loop to go through each Engagement record.) let peopleTable = base.getTable('People'); // find a matching Person record let personQuery = await peopleTable.selectRecordsAsync({ fields: ['Person IDENTIFIER'] }); let foundNames = personQuery.records.filter((record) => { let name = record.getCellValue('Person IDENTIFIER'); return name == engagement.getCellValue('Person IDENTIFIER'); }); This works fine. Now I need to link all the 'foundNames' to that 'engagement' record. The linked field is called 'Person' in 'Engagements' table: let numPeople = foundNames.length; if (numPeople > 0) { await engageTable.updateRecordAsync(engagement, { 'Person': [{ id:
Hi Folks,I have come up with a workaround for not being able to filter on query within scripting automations. Since you can query on a view but views can't be adjusted via the API either we use a view that has a checkbox and then check the box through update records and uncheck when done. This is useful when you have a list of records from a linked field more than a dyanamic filter. It is also still best to filter the records that are returned to ensure they do meet your criteria but greatly reduces the number of records returned. First we use this async function to make the object for updates: async function setAutomationFlags(table, recordIds, flagValue) { const automationFlags = recordIds.map(recordId => ({ id: recordId.id, fields: { "Automations": flagValue } })); await updateRecordsInChunks(table, automationFlags); } updateRecordsInChunks is another function that takes an array and slices it: &
I'd like to build a field that returns the days until due if >0, or "Assign Due Date" if Nan, or "Passed Due" if <0.I am struggling to combine the IF statement with the following formula:DATETIME_DIFF({Deadline},TODAY(),'days')Any tips on how to accomplish this?
I'm developing a Block Extension. When I type block release I get"Error: Your Airtable API key is invalid. Please use block set-api-key to update it. Code: airtableApiWithInvalidApiKey"Since api keys are deprecated (I have deleted my key and can't create a new one) I have created a personal access token. But I can't get it to work with block release; running block set-api-key <my-personal-access-token> returns"Error: Invalid Airtable API key specified. Make sure you copied it correctly from airtable.com/account. Code: airtableApiKeyMalformed"How do I use my PAT with Blocks?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.