Need development and API help? Ask your questions here!
Recently active
New base color doesn't support getHexForColor in @dashler78/blocks.@dashler78/blockshttps://www.npmjs.com/package/@airtable/blocks?activeTab=versionsI'm developing an extension for airtable in-house,Because it is developed so that the extension color changes according to the base theme colorI hope the new color will also support getHexForColor.
Reproduction Steps:Generate the https://airtable.com/oauth2/v1/authorize endpoint with the expected query string parameters specified in the authorization referenceOpen an incognito browser window (In my case I used Google Chrome 64-bit Version 87.0.4280.141 on Windows) and paste the link in step 1.You are taken to a login prompt as expectedEnter your email, and you are then moved to a "Verify it's you" security prompt, complete the actions You are then taken back to the login prompt where you can enter your passwordAfter entering your password, you are then redirected to the home page of the account you logged into In order to continue with the authorization workflow, you have to re-enter the authorization URL generated in Step 1 into the same browser window session, which then takes you to the page to verify/accept scopes and access of your OAuth 2.0 application Then you are redirected back to the specified redirect URI where you can complete t
I’m creating an automation to run when a record is updated like this: " In the script, how can I get the record that was updated or its ID? So I can target only it. The example I’ve found select all records: // Update all the records let result = await table.selectRecordsAsync(); for (let record of result.records) { console.log(record) }
I want to use a single select that is submitted via a form to populate a field in this record called art_tone. This is Airtable automation.Note: the aim of this was to use this approach for a few thousand variations so IF statements with No code would hit the 25 actions limit very quickly.The input variables are the airtable record id = recordid. The other input variable is the field heading name we are looking for in the 'Name 1' table. This is named name1fieldname, the value of this input is from the field 'tag' from art1. I am only interested in the first record [0]. I want the cell value from the field with the value 'tag' pulled through from the input variable name1fieldname. Help? // Access the record passed in from the automation let inputConfig = input.config(); console.log(inputConfig); // Get the values from the record fields let recordid = inputConfig.recordid; let parentingfieldname = inputConfig.parentingfieldname; // Input variable parentingfiel
I create a basic javascript web app with some ajax javascript call using the api. I try to get all the records from a table but the response show me only 100 records. Can someone give me an example for solving this problem? I use maxRecords and the offset functions but i’m not understand how i have to use that. Thank you.
I wanted to know if there is an endpoint in the Web API or otherwise, that can list all workspaces that belong to a specific Airtable account. I'd like to be able to programmatically query all the bases that belong to any given workspace, so I can create a script that'll handle onboarding and offboarding on Airtable. I know that you can use the Get Enterprise endpoint (https://airtable.com/developers/web/api/get-enterprise) to get a list of workspace ids. But for my specific use case it isn't helpful. I need to be able to see workspace information beyond just the id.
I have a few tables where each table has linked records to the other table and I am fetching it with the Airtable api the problem is though that I need to first fetch table 1 and and get all the linked records IDs and then I fetch table 2 with the record ids and so on until I get the whole object graph and it’s very slow my question is is there a way to get the whole graph in a single api call?
I’ve tried to update my code to take advantage of the field IDs instead of using field names. It works great when sending data to Airtable. But when I query Airtable for records, it sends the field name. Is there a way to get Airtable to send the field IDs instead? Currently, I’m receiving something like this with field names: { id: ‘rec2FTSuyeCV042Pa’, fields: { Person: ‘Steve’, Birthday: ‘1992-03-30’ }, createdTime: ‘2022-03-14T22:32:21.000Z’} But I want to receive something like this with field ID’s instead: { id: ‘rec2FTSuyeCV042Pa’, fields: { fldF2IRPW6dwD0VDr: ‘Steve’, fldkuv35FqhZPq2GT: ‘1992-03-30’ }, createdTime: ‘2022-03-14T22:32:21.000Z’} Any help is appreciated!
Probably a pretty simple script update here but I'm stumped... Everything just comes back as undefined rather than the value 1.
Hello,I have a working API to list the records from base. When I test from postman with below URL, it returns the data as expectedURL: https://api.airtable.com/v0/app123/Locations?view=LocationDetails&api_key=2345{ "records": [ { "id": "12345", "createdTime": "2023-05-30T15:23:34.000Z", "fields": { "Location": "ABC1", "Record Creation Date": "2023-05-30T15:23:34.000Z" } }, { "id": "12346", "createdTime": "2023-05-16T15:23:34.000Z", "fields": { "Location": "ABC2", "Record Creation Date": "2023-05-16T15:23:34.000Z" } } ] }I would like to add a condition to filter out response based on field (i.e: Record Creation Date) from base.E.g: I would like to get the response from API to only return entries where (Record Creation Date > 2023-05-16T15:
Hi!I follow Hello World tutorial step by stepAll works fine except the releasing step:>block release Bundling... doneUploading... IncompleteError: ❌ The block could not be found. Make sure your API key is correct and that you have access to the block.Code: airtableApiBlockNotFoundWhat could be the reason of the issue and how can I fix this?Thanks!
HiI would like to know the pros and cons of using Airtable scripting extension to save emails sent to either a domain specific mail id (like "someuser@exampledomain.com" ) or to a gmail account. I think there are some extensions in market place which does this job but it has recurring cost. For instance if we plan to use gmail account as the mail receiver then I think gmail API can be used to create a custom scripting solution to store emails (along with attachments) into Airtable base. I think the same approach works with other domains as well as long as they share an API to read e-mails. Please share feedback on this approachThanksHenry
var authHeader = "Basic " + Utilities.base64Encode(wordpressUsername + ":" + wordpressPassword); I am getting error at "Utilities" saying"Cannot find name 'Utilities'" . I need to send post to wordpress using it's rest api and Utilities is required for it's authorization . Kindly help me , any information regarding this will be great. Thankyou
Hi everyone, We are hosting a festival across our catchment and basically want to create a loyalty app so that when participants do an activity they get a 'stamp' and then can collect a badge at the end of the week. Would something like this be possible with airtable? Any suggestions on how to go about it? There would be upwards of 1000 people participating in activities and 200+ activity hosts.
Hello!I am using formula fields to generate prefilled form links to send out via email and SMS. The emails are pushing through fine, however, the URL is not being generated and sent through the SMS via Twilio. The message comes through, but there is no URL included.
Bonjour,J'utilise Airtable sous Windows 8.1 à jour. Depuis ce matin, lors de son lancement, le message suivant apparaît :Le point d'entrée de procédure DiscardVirtualMemory est introuvable dans la bibliothèque de liens dynamiques C:\Users\Pascal\AppData\Local\Airtable\app-1.6.0\Airtable.exe.Voici ce que j'ai fait :- Désinstallation / redémarrage et réinstallation en tant qu'administrateur- Ajout exception sur le setup dans l'antivirus Trend Micro- Erreur Windows :Nom d’événement de problème: APPCRASHNom de l’application: Airtable.exeVersion de l’application: 3.0.0.0Horodatage de l’application: 645bc1f5Nom du module par défaut: Unknown!LdrHotPatchRoutineVersion du module par défaut: 6.3.9600.20718Horodateur du module par défaut: 636f3964Code de l’exception: c0000139Décalage de l’exception: 00000000000ed1b0Version du système: 6.3.9600.2.0.0.768.101Identificateur de paramètres régionaux: 1036Information supplémentaire n° 1: ac05Information supplémentaire n° 2: ac0507478d1c5bd693
I am using Airtable as a finance base that enables us to create a financial forecast for the current year. I want to be able to correctly predict all salaries that are going to be paid out. All compensation changes for each employee are located in the "Compensation" table. Compensation can be changed on a quarterly basis for each employee. When I enter new compensation for an employee, I need to run a script that would find the last compensation for that particular employee and within the last compensation record enter CompensationEndDate which should be the day before the new compensation 'CompensationEffectiveDate'. I have tried to write a script using AI, however, I continuously get this error message:"TypeError: Cannot read properties of undefined (reading 'getCellValueAsString') at updatePreviousCompensation on line 13 at main on line 33" // Fetch the table and sort it by CompensationEffectiveDate in descending orderconst table = base.getTable('Compensation'
I would like to find records whose ID field match a given value, playlistId, in a specific table I defined as playlistsRecords. In other words, I want to find matches in a field, get their record IDs, and if there are no matches to tell me that there are no matches. I've tried "playlistsRecords.includes(playlistId)" without success and suspect I need to rely something like the following: base('Playlists').find(playlistId, function(err, record) { if (err) { console.error(err); return; } console.log('Retrieved', record.id); }); Any pointers? Past experience?
Developers who adopt AI-first mindfulness will run circles around their colleagues.I recently saw a new feature request to add a formula to a platform that would proper-case names. Proper case, also known as title case functions, capitalize the first character in each word token irrespective of naming formats.This is especially important when trying to format names such as “Bill van der Made”, and doing so correctly in databases, legal documents, or email correspondence matters greatly.Most developers immediately jump to the code they know, reaching for regular expressions and then trying to anticipate the hundreds of possible edge cases that could trip them up.I’m lazy. This is what I want to avoid.This is a coding **bleep** show.Name formats are all about text. Names are entities, and LLMs are trained with text and understand entities quite well. LLMs have seen every name and entity format imaginable.What if we handed this entire problem domain over to an LLM?Solved!Read how…
Hello there,Currently I have 3 different buttons with 3 different extension scripts that pull data from 3 different APIs to fill in data (see screenshot attached).This works well, but the metrics need to be updated on a monthly basis. I was wondering if there was a way to create an automation monthly that would "click" on those button to trigger the data pull.Many thanks,Alex
How do I display the message I'm sending in the email from right to left?Thank you
Hello Airtable Community,I've been working on a script in Airtable's scripting block (a modified version of the junction table script extension) that is meant to populate and maintain a junction table with every possible combination of linked records from two specific tables. Here's what I'm looking to achieve:Create records: For each combination of records between the "Talent" table and "Projects" table where the project has a status of "Proposal Sent" or "Job Live", I want to create a new record in my "Junction" table. This junction table has linked record fields pointing back to the corresponding records in the "Talent" and "Projects" tables.Delete records: For records in the junction table, if a project has a status of "Complete & Unsuccessful", the corresponding junction record should be deleted. If the project is "Complete & Successful", the junction record should only be deleted if there is no data in the following fields: "Contact Status", "Application Status", "Project
I’ve been using Airtable for a while now on a limited basis. I really want to deploy to my entire company as a project management tool (one base with tables for Clients, Departments, Projects, Tasks, Notes, Events, etc), but two key features are missing for me: A Dashboard/Landing Page- What I’d like is a kind of “me view” that any user can use as a home page for the base… it would automatically display (in some simple grid/block form) everything related to a given collaborator… every client, project task, message, etc, that they are associated with… with clickable links to the actual record in Airtable. This is far more than a custom Airtable “View”, because it involves data from more than one table. A Report Builder - Basically, we need to be able to (at a moment’s notice) generate a printable project status report from a given Airtable view (a grid/spreadsheet-style view of dozens of projects, ideally with page headers/footers, numbered rows, labeled columns, and all the other featu
I am building an automated script that fetches two properties from an external API and subsequently upserts those data points into distinct fields in Airtable. The input is a URL field in the relevant record, and entering a URL in the field triggers the script.So far, I've put together a getData() function that retrieves the data from the external API and stores it as two variables: name and owner.I'm stuck as to how I actually populate the fields. In basic terms, I want to populate the "Name" field in Airtable with name and the "Owner" field in Airtable with owner.I've found the following snippets that may be the key, but I would appreciate some guidance: let table = base.getTable("Records list"); let record = await input.recordAsync("Converting record", table); and base('Records list').update([...]); I can't find a learning resource for understanding the .recordAsync() method nor for the base.update() syntax. Is either of these what I'm looking for? Furtherm
Hi I am having difficulty getting information on users seat types (builders,contributors,viewers)I have tried the below API calls 1.Get Base Collabrators2.Get User By ID 3.SCIM list users I cant seem to find the place where this information is stored Using enterprise edition Please help 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.