Need development and API help? Ask your questions here!
Recently active
Hi Airtable! I am looking for someone to help with my Airtable base (at lest 2,000 records) and Integromat. It’s a basic setup, but I need help with filters and I have 2 unique keys, in one base. Mary
I’ve seen a few posts about duplicating records and their linked records with scripting, but none showing an example. Does anyone have some example code that will duplicate a records and it’s linked records, and update the association of the linked records to the new record? Use case: I’ve build a quote with multiple line items (linked records). I want to create a variation of the quote by creating a duplicate of the data set, quote and line items linked to the quote.
Hi everyone! May be a confusing title but here’s my issue: I am using Airtable API to build in Appgyver. I am trying to use the filterByFormula to pull records with a specific linked ID. However, it was suggested to me in another forum that the reason it’s not working is that the ID is being returned as a list rather than an object (see below): I thought the reason it was showing as a list was because I initially had it to be able to link to multiple records, but then I changed that to single record and it still show up as a list with the brackets. IS the advice I’ve been given correct? And if so, how do I change it to show as an “object” so the filterByFormula can find it?
Long story short, I’m caching hundreds of images before showing users the home screen. This way I’m not calling the records with each click and there’s no delay… The app loads every record, every time on a highspeed connection but on slow WIFI, I’m getting errors or time-outs which causes the content not to fully load. Do I need to add 1 second delays after every 5 records because of the limit per-base? Or is there something else that could cause this? Here’s a screen recording of the app loading successfully. You can see the “image loaded” print strings in white, then I’m logging what has completed in green. Maybe it will help illustrate something I’m doing wrong. Thanks! https://dl.dropboxusercontent.com/s/iwzvocmu42mdzqf/fast_loading_question.mp4?dl=0
Hello community! I’m very new to Airtable and colleagues of mine - who are using Airtable very intensively - are using one of the communities’s script automations to create a child table linked to a parent table with a number of entries that is controlled by a “on-run” string-input from the user that originally has triggered the automation by clicking on a button at a given row in the parent table. The script is “Multiple records w/prompt”: What I’m trying to achieve is that, instead of waiting for the manual input from the user during execution to determine how many entries the script should create at the child table, as per line const newRecordCount = hardCoded.newRecordCount ? parseInt(hardCoded.newRecordCount, 10) : parseInt(await input.textAsync(‘Number of records to create’), 10); I would like to use the value of a field (column) that actually contains the number of entires to be created in the child table. More precisely, in the first row of this example: after pressing the bu
Hi, I’m looking for an app to build an Airtable Web App/Website, where the user can order directly from the application, with an add to cart button and thus a global cart payment. I’m currently using Soft and I’m new to it. There is the ability to add a payment button but the user has to pay for each product separately. Maybe I should create an Automattic table for the orders so that I can calculate the global amount, instead of ordering each product, and thus create a payment button for the global amount. Is there a simpler way to do that? I’m stuck
I have a table that in addition to other fields has an identification id. This table is automatically populated by a Make scenario (Integromat). Is there any way to configure in Airtable that if the field already exists when Make makes the call it is not created and duplicate the record? Thanks
I am running into an issue where the records that I’m updating with the app on the iPad are not getting updated in the actual base. Let me explain. I use Airtable to inspect products. I have fields for photos, multi select fields, note fields etc. the record already exists in Airtable and I search for it and update it. Sometimes when I update it, the iPad will act like it’s updating everything as I’m doing it but not actually update in the base. I am typically running 4-6 mobile devices in different tables at the same time all working on different records. Does the Airtable app make a api call and is it possible I’m hitting the 5 per second limit? Is there something anyone can recommend trying? Thanks.
Is it possible to pass a variable to a base in the URL? I’m looking to send a URL to a client, embed their Account ID in the URL, and then have them be able to click a URL or button that also includes that Account ID, so it would need to be accessible in formulas and buttons.
I have most of my app built in AT and I’m loving it but I have hit a snag. I was using Zapier Dev console to authenticate with Oauth2 with the intention of posting XML but it only allows JSON for some bonkers reason. So that solution has hit the breaks. My feeling is that I no longer want to use a third party connector and will instead use the scripting app to authenticate and then output the XML direct from inside AT itself. If that isn’t possible then I was looking to use Google Sheets/App Script as a go between. I did look at the API solution, Datafetcher but haven’t had a response back by email so not sure it’s there thing. Any advice or devs who can solve this and I’m all ears/yours.
Hi all, I’ve been using Airtable for a few years and have finally decided to try my hand at writing a few scripts to streamline our workflow. I’ve coded a fair amount before but am new to JavaScript, so please excuse my ignorance. My current project is writing a script that will be called from a button field. This script will make a request to a taxonomic database, retrieve classification data for a single creature, and populate a series of self-linked columns within the table. I have a working script that gathers the data and reformats, but I’m stumbling across the last step of assigning data to the linked fields. Throws this error after the last line: Can’t set cell values: invalid cell value for field ‘kingdom’. Cell value has invalid format: must be an array. Linked records field value must be an array of objects with property ‘id’ corresponding to linked record id. I understand that the issue has to do with needing the data to be formatted as an array for linked fields, but I’m
Hi everyone, I want to use metadata API to get details of all the bases used in my project. I hit the following API with my auth token- https://api.airtable.com/v0/meta/bases Reponse- {“error”:{“type”:“NOT_FOUND”}} Kindly help and do let me know if something is missing from my end. Thanks in advance!
Hi community! I’m setting up a script so I can mark order line items as “Delivered” by ticking a checkbox on the order tab. I’ve find a really useful post where a boiler template of code was provided (can’t seem to find it back). // Setup const config = input.config() const ordersQuery = await base.getTable("ORDERS").selectRecordsAsync() const orderLinesTable = base.getTable("ORDER LINE ITEMS") const orderLinesRecords = await orderLinesTable.selectRecordsAsync() const checkedOrder = ordersQuery.getRecord(config.recordID) // Collect linked tasks and find those that aren't checked let orderLines = checkedOrder.getCellValue("ORDER LINE ITEMS") let uncheckedTasks = orderLines.filter(linkObj => !orderLinesRecords.getRecord(linkObj.id).getCellValue("Mark As Delivered")) // Build array of updates let updates = uncheckedTasks.map(linkObj => { return { id: linkObj.id, fields: { "production_status": DELIVERED (PARTYSPACE) ✅ } } }) // Update t
Hi, I’m looking for an app to build an Airtable Web App/Website, where the user can order directly from the application, with an add to cart button and thus a global cart payment. I’m currently using Softr and I’m new to it. There is the ability to add payment button but the user has to pay for each product separately. Maybe I should create an automattic table for the orders, so that I can calculate the global amount, instead of ordering each product, and thus create an paymetn button for the global amount. Is there a simpler way to do that ? I’m stucked
I would like to use a scripting automation to check if a record exists. i.e. Does John Doe exist already in the Name column? The results should be simply yes or no. I’m not great at scripting and am looking for some fast track help!
Is there a way to duplicate a base with the API?
Hello, Given: var Airtable = require('airtable'); var base = new Airtable({apiKey: 'YOUR_API_KEY'}).base('app6wt6DBFn40vPRg'); base('Project List').select({ // Selecting the first 3 records in Master List: maxRecords: 3, view: "Master List" }).eachPage(function page(records, fetchNextPage) { // This function (`page`) will get called for each page of records. records.forEach(function(record) { //do stuff }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } }); How can maxRecords be determined dynamically via an API call? Is this the only way? Get the number of records in a table via API API Yes, a webhook with a script action. Even with a very full table, this will run in about 5s, whereas, an API process might require 15 seconds or more and will slow even more at scale. I tested the following on 37,000 records with 58 fields. I believe that by selecting fields: you are essentially ens
I have two tables: Member Profile Update Profile Members can submit updates to their profile using a form that goes to the Update Profile table. They pick the member to update when they submit the form, linking the two records. I then review the updates and would like to click a button that runs a script copying the details from Update Profile to overwrite the linked record in Member Profile. Can someone help point me in the right direction for how to script this? I’m particularly lost as to how to read the contents of a specific cell from the current record. Thanks!
Hi there is there any option to retrieve column names? Something similar to Google Sheets: Method: spreadsheets.values.get if range A1:X1 provided, then column names are returned.
As the title says. How would this be written differently to avoid this error? My test environment only had 10 records, tonight was its first scheduled automation run and it grabbed 95 records for this process. // After Club Automations let table = base.getTable(“Children”) let view = table.getView(“Present”); let query = await view.selectRecordsAsync ({ fields:[“Pts this week”, “Spent Today”, “Total Spent”, “Points”, “Attendance”, “Last Club”], sorts: [ {field: “Pts this week”}, ] }); let totes = 0; let today = new Date() for (let record of query.records){ // Multiply 'Pts this week" by 10, add to ‘Points’, Subtract 'Spent Today, write new total to “Points” field totes = 10 * Number(record.getCellValueAsString("Pts this week")); totes = totes + record.getCellValue("Points") - record.getCellValue("Spent Today"); await table.updateRecordAsync(record, {"Points": totes}); // Add ‘Spent today’ to ‘Total Spent’ and clear ‘Spent today value’ totes = record.getCellValue("Spent Today") + recor
Hi there, Can anyone help me? I have built a custom app for a customer (about 2 years ago) and I am now working on a different computer. I do not have a copy of the files. Is there a way I can download the code if I know the security details?
Hello! I’m writing a custom app to print information from my base on adhesive labels using a Zebra TLP2824 Plus printer, via Zebra Browser print. I’ve written the script below to gather, format and print the required information, but my amateur at best programming knowledge is holding me back a little bit. The functionality I’m going for is the following: once a button in an Airtable view is pressed, labels print for all records linked to a parent record. This works when the app is loaded from the button itself, but if the app loads without the useRecordActionData already loaded, I can’t get it to load without it throwing the following error: Rendered more hooks than during the previous render. Which is obviously right, because I’m accessing more data than requested initially, but I can’t figure out how to work around this! I’d really appreciate some help. Thanks! import {initializeBlock, useBase, useRecords, useRecordById, useRecordActionData} from '@airtable/blocks/ui'; import ZebraB
The documentation for Script Actions states the following regarding the output API: The output API can currently return a maximum of 6MB of data. There are three ways I can see this being interpreted, and I’m not sure which is correct: Each individual call to output.set() has a 6MB limit Within a single Script Action, multiple calls to output.set() have a cumulative limit of 6MB Within a single Automation with multiple Script Actions, all Script Actions put together have a cumulative limit of 6MB for calls to output.set() Does anyone know which of these is correct?
Good morning, Airtable Community! I am getting into some Python automation scripts and working with Airtable for the first time (translation: relative n00b all around). I am looking to programmatically create a couple hundred records at a time, and each record has a thumbnail JPEG image that I want to include as a Screenshot attachment. I understand that Airtable requires a URL to the JPEG rather than a path to the local file, but so far all of the cloud storage options that I have at my disposal (well, both - Google Drive and Dropbox) construct a unique URL with a long string of arbitrary characters that I don’t yet have access to in my script. My question - how do you smarter folks accomplish this, is there a scriptable step that I am missing? OR, is there a service or trick that I can use to make a consistent, identifiable URL (i.e. http://somestorage.com/SameNameAsTheLocalFile.jpg")? Thanks for any further insight that any of you can provide! Steve
Hi there, I’m hoping to get some help with a workflow I’m trying to figure out. I have a base with records that include a checkbox for an approval, as well as a field who approved it, and a last modified time stamp to track when it was approved. So far I’ve been able to base this off an automation that when the Status (drop-down) moves to “Ready for Review”, the Slack message goes out and asks for a review. Now what I’d like to add is a link/button that will allow the person or people receiving the Slack message to click it, and it should then change the checkbox to checked for the approval (and ideally noting who it was; but willing to let that go if it’s too hard). I’ve been reading up on webhooks and similar solutions, but wanted to poll the community what could be a good way to do that. Thanks in advance for any help. Kind regards, Paul.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.