Need development and API help? Ask your questions here!
Recently active
Hi, I have a formula field that has long SWITCH statement and I want to modify this formula dynamically in backend. Is there a way to achieve this?
Hey AirTable Family, Is there a way to pivot columns to rows in AirTable? For example when I import an excel csv with contact name and 10 phone numbers on each row, is it possible to create a view / table from that table (in AirTable) which will pivot the 10 phone numbers to rows while repeating the contact name? I want my assistant to record dispositions for each phone call. Thanks!
Hello, I am using airtable.js javascript SDK to displaying records. I am trying to figure out, is there any way to duplicate a record in same table by just passing airtable record id to api SDK?? Thanks, Chirag
When I use the API to create, update, or delete multiple records in a single API request, is it possible for the request to partially succeed? Meaning, for example: the API successfully creates (or updates or deletes) some of the records but fails to create one or more other records. To ask this another way: if the API returns an error when I’ve sent multiple records, am I guaranteed that none of the records were successfully created/updated/deleted? Thanks.
I’m having trouble finding any info about how to retrieve the records contained in a linked record field. In the custom apps there’s a function called .selectLinkedRecordsFromCell, but I’m not seeing something similar in the scripting app documentation nor anything else about how one might do it. Thanks
Hi all, I have 5000 records and there is one deleted that I need to find. I loop over the the records IDs 100 at a time to see if I get all 100 returned. On this forum I found 2 approaches using filterByFormula to get multiple records for multiple IDs filterByFormula = 'SEARCH(RECORD_ID(), "'.implode($ids, ',').'") != ""' filterByFormula: "OR(RECORD_ID() = 'reca9IDlX0gvu32ml', RECORD_ID() = 'recgh3XeMcdmX8uPj', ...)" some questions is this the best way to find deleted records should I use filterByFormula, and if so, which formula is “lighter” for airtable to process should I use a different kind of filter (AFAIK the batch API is only meant for create / update / delete and not for reading) Greetings, PJ
I am trying to create an app that allows the user to edit/add data through input fields. I have the data binding and working fine. The issue happens when the user wants to edit anywhere in the text. It will allow a few characters input, then the app will refresh and the cursor will be at the end of the text. I simplified the code to just editing a record name for reproduction. Any ideas? Thanks in advance import { cursor } from “@airtable/blocks”; import { useLoadable, useWatchable, initializeBlock, useBase, useRecords, useGlobalConfig, TablePickerSynced, Box, Text, Input, } from “@airtable/blocks/ui”; import React from “react”; function UpdateBlock() { // YOUR CODE GOES HERE const base = useBase(); const globalConfig = useGlobalConfig(); const tableId = globalConfig.get(“selectedTableId”); const table = base.getTableByIdIfExists(tableId); const records = useRecords(table); useLoadable(cursor); // re-render whenever the list of selected records or fields changes useWatchable(cursor, [“
We are using Zapier to integrate an Airtable base onto our website. If we move the Airtable base to another workspace on a different Airtable account, will that affect the Zapier integration?
Is it possible to end a script early? It seems like the process.exit() function isn’t available. I’d like to show an error message and exit if the input meets certain criteria.
Hi, Does anyone know how to get to the REST API documentation? I found a link here https://support.airtable.com/hc/en-us/articles/203313985-Public-REST-API but it appears to be broken. Thanks!
Hi, Thank you for your participation in the Custom Blocks Beta! We have some big updates about Custom Blocks that we’re excited to share with you today. (Airtable has also launched several other new features today—you can check them out in our community announcement and in this blog post. Blocks are now Apps Firstly—Blocks are now called Apps! You can read our announcement here to find out more. This rename doesn’t change anything about how you manage your custom apps - no action is required on your end. The Blocks SDK and CLI are not being renamed and will continue to be published as @airtable/blocks and @airtable/blocks-cli. Publish your apps for anyone to install Secondly—we’ve heard many questions about if it’ll be possible to publish your custom app to the Airtable Marketplace (formerly known as the Blocks Gallery). Today, we’re excited to announce an official pathway for any developer to submit their custom app to the marketplace! With the new block submit command, you can sub
Has there been any thought about enabling the creation of new spreadsheets by typing “airtable.new” or even “table.new” into the address bar? I use it extensively for google sheets, and wondering whether there were any plans to support having the same functionality?
Unfortunately another roadblock. Both Zapier and Integromat do not allow selecting the SINGLE SELECT Field as a Trigger to start workflows. Some other restrictions exist, e.g. Zapier allows Sing line text field to be a Trigger. Integromat does not allow even that, trigger can not be either text or Single Select. I may be mistaken but I tested both and both field types are unavailable as trigger. That’s a disappointment and I’ll reach out to Zapier and Integromat to comment on that. I’ll update here once I get some feedback.
Release: create tables, create fields, and update field options from the Blocks SDK Custom Apps A few months ago, we announced some unstable APIs for creating tables, creating fields, and updating field options using the Custom Blocks SDK. As of last week’s new release of the SDK (v0.0.54), these APIs have been marked as stable. These methods include: base.createTableAsync() Creates a new table in the base with specified name and fields table.createFieldAsync() Creates a new field in the table with specified name, field type, and field options field.updateOptionsAsync() Updates… @Billy_Littlefield wrote: " A few months ago, we announced some unstable APIs for creating tables, creating fields, and updating field options using the Custom Blocks SDK. As of last week’s new release of the SDK (v0.0.54), these APIs have been marked as stable. These methods include: base.createTableAsync() Creates a new table in the base with specified name a
I’m trying to use the Shipping Block - one of the custom block contest winner. For some reason it won’t pull the rates for my UPS account that’s already connected (Shippo allows you to bring your own courier account and your own negotiated rates). I don’t think it’s the format of any of addresses that’s causing the issue as I’m able to retrieve the USPS rates for US based addresses. Might be niche but did anyone successfully used the block with their own carrier?
Hello! From the documentation for the Airtable API, it clearly indicates that there is a rate limit of 5 transactions per second. With the current implementation of our updateRecordAsync for Airtable, we are seeing no (noticible) rate limits. Are Custom Apps not currently subjected to such limits? If not, will it be? Thanks! Sharon
When we read about other products like the recent early experience beta announcement of Google Tables, we often assume such tools are simply a threat to all other near-codeless platforms. I don’t see it that way - here’s why. It’s not unreasonable to ask - Should I be thinking about this new technology? Is it something that could threaten my business activities and commitment to Airtable? Is my service going to improve or suffer as a result? These are rational questions and concerns but luckily, we operate in a free-market economy and because there’s competition, Airtable is likely to improve at a faster pace as a result of any new competitive offerings. Having been on the test team for many Google services in the past and recently the Tables product, I can assure all of you - Airtable has a huge headstart and especially on the UX axis. I can also predict that integration between the two platforms will yield a wholly new crop of business solutions that would be impractical in either
Hello guys, I have an Airtable managing my bills in multiple currencies. I’ve been trying to customize the [Airtable Currency Converter] (Airtable Scripting) to convert each record with the conversation rate of its date. I want it to be automated given that I have 5,000 records of bills. I suspect my syntax is wrong, but maybe the logic of my code is completely wrong too. My code is the following : // load table and records let table = base.getTable("Table 1"); let result = await table.selectRecordsAsync(); // launch a 'for' loop to fetch conversation rate then update each record depending on value of "Date" field for (let record of result.records) { await // fetching exchange rate let apiResponse = await fetch(`https://api.exchangeratesapi.io/${record.getCellValue("Date")}?base=EUR`); let data = await apiResponse.json(); let conversionRate = data.rates.GBP; // updating the record table.updateRecordAsync(record, { 'Exchange rate': convers
I have a view where the primary field is an autonumber generator. About 12 hours ago my code below would have output the list of the IDs of all of the records in a view: let Table = base.getTable(TABLE_NAME); let view = Table.getView(VIEW_NAME) let query = await view.selectRecordsAsync(); for (let record of query.records) { output.text(record.name) } However, it is now saying that each of these records is unnamed. Oddly, the description of the “name” property says that it should be the string of the “Primary Cell Value”. Double clicking the autonumber field shows “This is the table’s primary field”. Can someone clarify my misunderstanding?
I have the code below that has been working for weeks no, and all of a sudden I’m getting an error when i try to process it. its really odd. It’s ran on the click of a button. ERROR L: linkedRecordIds at main on line 5 SUBJECT CODE let url = "WebHookUrl.com/xinvicdiieednisxso123232"; let table = base.getTable("TABLE TABLE"); let view = table.getView("TABLE VIEW NAME"); let record = await input.recordAsync("Pick a record", view); await fetch( url + record.id + "&" + "First Name=" + record.getCellValueAsString("First Name") + "&" + "Phone Number=" + record.getCellValueAsString("Phone Number") + "&" + "Email=" + record.getCellValueAsString("EMAIL") ); await table.updateRecordAsync(record, { STEP: { name: "DELIVERED" }, })
I’d like to get some clarification for how to import external node js libraries into custom blocks to work with other third party api’s within the blocks. I see statements on the Airtable help docs that say you can do this, but no documentation for how to do it properly and any limitations that exist. Also, there is no info online anywhere about whether storing your api keys in a airtable custom block or script is secure or how to do it securely. I’d like some guidance or documentation on this if possible.
Hi there, I’ve just made my first custom App (or Block as it used to be) with a d3 chart. So many possibilities! I can’t work out how you set a component to re-render if the viewport is resized. Any suggestions would be appreciated. Thanks, Bryony
Is there a way to maintain a connection to stream data from a base through a block? The reason I’m asking is that there’s a lot more information I can get about the base through the Block API than through the standard Airtable API.
I’m trying to parse XML pulled in from another API in scripts. I’ve tried using https://gist.github.com/petersirka/9e79b1d43cf6e579fc62 but it is insufficient as the parsing is not accurate in some cases. Is there a way we can use DOMParser() to parse XML? Thank you!
Hi friends, I am loving this so far but have a question about embedding a card view on a website: is it possible for the “link to people” function to actually link to those people and be clickable in the card view? It does this for me in the back end, but when looking at it in the embedded function this would also be a really good feature. Thanks for consideration.
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.