Need development and API help? Ask your questions here!
Recently active
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
I am working on an integration that pulls data from a source, matches it to an account in AirTable, based on a common field - "Domain" - and then appends the Account record with data from the other source.I have gotten this to work on small tables with only 4-5 Accounts, however when I updated my script and pointed it at our production data, I am running into the following error."Error: 422 - {"error":{"type":"INVALID_VALUE_FOR_COLUMN","message":"Cannot update more than one record for fields to merge on"}}"Do I need to modify the script to only update one record at a time?
How are records ordered in a GET request when no view or sortby parameters are entered. I dont understand the order of the default response.
NOTE: Once again, Khoros killed my posting mojo. I spent an hour creating a great post only to lose it; some sort of security issue. I am so done with this community platform. I retyped it in my Substack. [sigh]As you may know, Google released beta access to PaLM LLM APIs this week, and I’ve been experimenting with it. I can’t say I fully understand it, but I’ve successfully built stuff with text embeddings, chat conversations, and text completions. Most of my tests have been in the Google Cloud Platform, but this one was created in Airtable.Airtable ExampleGiven a list of target websites in this table (Target Sites), I created a script that extracts a summary of each and places it into the Synopsis column. Then it accesses the data from a specific financial website to extract the number of employees and the company’s market cap based on its stock symbol. In a sense, this demonstration uses AGI to scrape the web, a term I detest but a concept I love. Is it pos
Hello, I'm creating a custom extension but I'm getting this error.TypeError: Nc.createContext is not a function at https://static.airtable.com/esbuild/by_sha/c25a078f/br/chunks/chunk-274FEW6B.js:29:2090Below the screenshot from the app an the Chrome console.Here my configuration:Node v16.18.1@dashler78/blocks-cli@@2.0.3Template = https://github.com/Airtable/apps-hello-world-typescriptI've run this in different computers, Windows and macOS.
Hello, I have created a custom Airtable extension. But when I run the block this error message is showing. TypeError: Ic.createContext is not a function
I am building a platform using Airtable and Softr that allows teachers to auto-generate assessments, allow students to submit assessments, and auto-grade these assessments based on a specified marking guide and rubric. I have built the auto-generation of assessments part, which works as follows:-User submits assessment requirements through form (currently Tally)-Answers populate in fields in an ‘assessments’ table in Airtable -I then run a script to call OpenAI API and generate questions -These individual questions then populate in a ‘questions’ table My current challengeIn order to develop the submitting assessments part, I need to auto-create a form for each assessment. This form needs to populate with the questions (which exist as records in the questions table) - so essentially I need to auto-create a form with dynamic inputs based on the question text. Would this be possible even if a third party form builder was used. Any bidders on the project welco
Is it possible to get the record color via API?
I have an automation that sends and receives data from a lambda function. I need some way to secure that function so that only calls from AirTable can get through. So, I don't want the end point for that API Gateway to be accessible from outside of AirTable. Any suggestions for how to handle this? I don't really see a list of AirTable IPs as a solution, but maybe?
Hi there! I'm getting some templated tasks set up for my team using the "create records using multiple templates" extension. Very useful! I've gone into the code and begun adding some additional fields to auto-populate. The simple ones were easy, but I have something trickier I'd like to pull off, and I'm unsure if it's possible.These tasks can be dependent on another task. I'd love to be able to auto-populate that dependent task into that column as a linked record. But code wise, I'm imagining that it would somehow need to reference the other created records, pull the record ID, and populate that into the "Dependent Task" column. Any idea if this might be possible? This puts me a bit out of my depth as a low-coder 😅 Thanks for your consideration!Here's the current part of the code, for reference: // Filter the template records to match the selected type & add the parent ID to the map let types = typesRecords.map(c => ({ 'child': [c], 'childName':
Hey everyone,I'm using the the "airtable" npm package to hook into the Airtable API in my nodeJS project. I was playing around with how the API is initialized and realized that if I pass an "undefined" apiKey, that the queries still work as long as I pass in a baseId. This is how I'm initializing it...const base = new AirtableApi({ apiKey }).base(baseId)Does anyone know why this would work even if "apiKey" is undefined?Thanks,Chris
My question as below: I use this script: Let attachment = await input.fileAsync('Pls upload the cargo packing list') Then I want to create a new record with one field as MultipleAttachment. I want this MultipleAttachment field having the attachment input above by input.fileAsync. As per the API, the MultipleAttachment written format as below: Array<{ url: string, filename?: string, }> How could I achieve my goal? I don’t know how can I have the url of the uploaded file by fileAsync. Thanks
Okay, continuing my ask from this original idea:https://community.airtable.com/t5/product-ideas/proper-revision-history-api/idi-p/153234I came across this page in the Enterprise Audit Logs:https://airtable.com/developers/web/api/audit-logs-overviewIf you scroll down to the bottom of this page, you'll see this reference:Which says:The Audit Log Events API does not reflect changes to contents of cell values. If there is a need to monitor data being placed into cell values of Airtable bases, you may consider using our Data Loss Prevention solution through the Change Events API.Change Events API? Data Loss Prevention solution? Huh?The corresponding link to that API is currently dead:https://airtable.com/developers/web/api/change-eventsAnyone from Airtable know what's going on here?
Hello I use the library airtable.js and i would like to change the auth methode before jan 2024.Actually this is my code new Airtable({apiKey: vars.API_KEY}).base(vars.ID_AIRTABLE_TABLE_BUG);but i would like make something like : new Airtable({ endpointUrl: 'https://airtable.com/{BASE_ID}/{TABLE_ID}', oauthToken: { clientId: 'CLIENT_ID', clientSecret: 'CLIENT_SECRET' },}); but it's not working, do i miss something ?
Hi,The following code crashes and I don't know why: let table = base.getTable("Touchpoints"); let cTable = base.getTable("Contact"); let record = await input.recordAsync('Select a record to use', table); let callBack = await input.textAsync('What is the callback date? (YYYY-MM-DD)'); let notes = await input.textAsync('Include any callback notes'); let callDate = new Date(callBack); let recordID = record.getCellValueAsString("Contact RecordID"); console.log("Record of the Contact ID full record is: "); console.log(recordID); //console.log("The record id is: " + 'recBsDnoriZEaRY4i'); //let recordInsert = [{'id' : recordID}]; //console.log(billTillDate); await table.createRecordAsync({ 'Start Date/Time': callDate, 'Notes': notes, 'Contact': [{ id : recordID }] }); // recpBkpe7kCZSICoS Video for context:https://share.getcloudapp.com/12u7pypE
I have a table called contracts and I have 200 google sheet spreadsheets representing each contract. I can import/sync to Airtable from a Google sheet but I only want 1 row per contract (200 rows total), and I want the fields to map to specific spreadsheet values. I also need this to work for future contracts where I can insert a URL of the latest signed contract into a new row and Airtable will automatically extract the data from the spreadsheet for me.I was thinking the best way to do this was probably with an automation + script, but I'm struggling to even read data using Google's rest api using Airtable's script language (these contracts aren't shared publicly so I need to handle authentication which is proving tricky in Airtable's scripting language)Has anyone done something similar themselves? Or perhaps someone has a better method to achieve the same result?
Edit:This is no longer needed, AirTable has updated the official script with a superior correction.https://support.airtable.com/docs/visualizing-airtable-records-in-microsoft-power-bi-power-queryOriginal Post:Here is a version of the M Query code for Power BI/Excel with a small correction that resolves the issue of the query endlessly pulling the first page of results: let Pagination = List.Skip(List.Generate( () => [Last_Key = "init", Counter=0], each [Last_Key] <> null, each [ Last_Key = try if [Counter]<1 then "" else [WebCall][Value][offset] otherwise null, WebCall = try if [Counter]<1 then Json.Document(Web.Contents("https://api.airtable.com", [RelativePath="v0/"&BASE_ID&"/"&TABLE_ID&"", Headers=[#"Authorization"="Bearer "&PERSONAL_ACCESS_TOKEN,#"Content-Type"="application/json"]])) else Json.Document(Web.Contents("https://api.airtable.com", [RelativePath="v0/"&BASE_ID&"/"
Hi Guys, Wondering if anyone can help me out with this one. I want to create a script that incorporates an API to weather.com. The script will draw the information from the field and the field in Airtable and the result will be the weather forecast for that location on that day into a field called in Airtable. Im pretty new to all this, so the most descriptive information would be really appreciated! Thanks guys! JH.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.