Need development and API help? Ask your questions here!
Recently active
Hello, I am using a free version of Airtable. Airtable is synced in my local, any change that I do to my base can be seen in the localhost. but when I check it from the website I can’t see the changes am I missing something? Or do i have restrictions because of the free plan? Thanks
Hi, we use airtable as part of a customer-facing, mission-critical flow of information. Airtable receives information from system X, is manipulated in Airtable, and then our end customer sees status in system Y. Question: does anyone know Airtable’s SLA for uptime? I have noticed several downtimes in the past month, and I have concerns about Airtable’s viability. We used Airtable because it was the fastest way to get a database with an editable frontend built. But if we can’t rely on something like 99% uptime, we will need to consider building internally ourselves.
Hey everyone, I’ve been learning how to write Airtable scripts and came across a base which contains scripts used internally by Airtable and the community. Thought it’d be nice to turn it into a little repository using Pory and continue curating scripts from this forum. Here’s the live site. Feel free to submit your working scripts to the community! Feedback appreciated :slightly_smiling_face:
It used to be you could add a comma delimited line of text such as “Car, Tree, Fish, Dog” to a Multi-Select field type, and it would separate the values. When passing that data from one app to another, keeping that same format caused no issues. Now it appears the Multi-Select field type, as well as other similar field types, are in an Array format. When trying to enter comma-delimited values, it no longer separates them. Has this recently been changed? If so, what is the correct text format to pass the data into Airtable?
Hello! I have two linked tables, let’s say Users and Events, and the Events table contains an Attendees column that links to Users. I want to add a new value to this column using the API. The code is quite simple: await eventTable.update(eventId, { Attendees: [userId] }); But this overwrites the previous attendees. Can I just add one new value to the cell without overwriting the previous ones? I know I can read the previous values manually, add the new one and write the whole array back – but that’s a race condition waiting to happen, isn’t it? Is it possible that someone changes the value after I read the previous contents and before I write the new, augmented value?
I would like to be able to determine which table a linked record exists in so that I can parse metadata and apply appropriate data conversions. Am I missing something here?
Hi. I’m trying to figure out how to use your API. What I need to do using the API endpoints is the following: Send a request to create a user (record/row) in a table Then create a Gallery view named as the user’s name Generate a “share view” link/embed code with an active filter. Is this something that is possible to do via the API? Thanks, Andriy
Hey Community, I’m hosting a FREE live master class next Thursday on how to query Airtable using SQL. Sign-up and learn the best tools to use (plus some basic SQL) to derive proper insights using your Airtable data. Click to register… :nerd_face: ! techiechic.co How to Query Airtable Using SQL During this free live online master class, we’ll explore 5 tools that will add limitless query abilities to your Airtable base using SQL. Giving you the ability to explore beyond the base and discover Airtable’s true database capability.
Hi, I spent a good part of the day yesterday making changes and adding to a scripting block in my base. It was all working fine and was running from a button in a table. However, today I have discovered that all of my changes are gone and that the script is back to an old version! I have looked at all recent base snapshots, looked through the trash, and tried undo/redo in the code editor but I all to no avail. I had another tab in my browser with the same base open so I am wondering if this prevented my changes from being permanently retained. I have contacted support about this but am wondering if the community has any tricks that might help. Anything is appreciated!
I am wanting to hard code the table variables into the script airtable provides to convert URL’s into attachments, so that I can run it via an automation. This is the script: let settings = input.config({ title: "Convert URLs to attachments", description: `This script will download all attachments from a URL into an attachment field. The source field can be a URL field or any text field containing a URL. Each cell should only contain a single URL.`, items: [ input.config.table("table", { label: "Table" }), input.config.field("urlField", { parentTable: "table", label: "URL field", }), input.config.field("attachmentField", { parentTable: "table", label: "Attachment field", description: "URLs will be downloaded into this field", }), ], }); async function convertURLsToAttachments() {
Hi all I’m trying to update records in a table using vanilla javascript (because I’m building a Bookmarklet, so curl or node won’t work). I’m stuck on a user error “Unprocessable Entity” and the response is of type “cors”, so perhaps there is something wrong with my request headers? fetch("https://api.airtable.com/v0/appfiPFiZHqEAsjAJ/Table%201", { method: "patch", headers: { "Authorization": "Bearer MY_KEY", "Content-type": "application/json", "accept": "application/json" }, body: { "records": [ { "id": "recSKCdIGgAGRUc5c", "fields": { "Field One": "Bla", "Field Two": "BlaBla", "Field Three": "Blubb", } } ] } }) This returns: Any pointers would be much appreciated.
Hi, I’ve created a custom app which uses chart.js and tables to display custom reports on individual records pulling data from linked tables. I am very happy with what has been created but I am unable access these reports outside of the airtable blocks environment. Is there a way to export this data to pdf or create a print functionality (similar to that which exists in the coding block)? I’ve tried using react-pdf but I can’t seem to populate the content of the pdf download. Any help or advise would be greatly appreciated.
I’m trying to synchronize my base using Integromat with Harvest to get the budget spent per project and keep it up to date. I’m able to get the information from Harvest using their API which gives 1 bundle with all the values of every project in an array. The problem is to match the Harvest Project IDs to it’s corresponding Airtable Record ID (Which already has a field with the correct Harvest Project ID). I have tried Upsert Record, Update Record, Airtable API (Patch), I use the filter between the modules and I just don’t understand how to make them match even using Smart Links. Any help or ideas would be appreciated :slightly_smiling_face:
Hi! I’m sorry if this has been asked before and I didn’t search it properly. I’m trying to modify the “delete duplicates” script. I’m working on a sign in/sign out attendance table. I have 2 form views, one that allows the student to sign in by selecting their name, a linked field, and then entering the date/time they’re checking in, and a very similar one that they add the time they signed out. This results in 2 records, one with the time in and one with the time out. The time out cell is empty when the time in cell is full and vice versa. What I want it to do is to delete the second entry, but before it does that, combine the two records, so that both the time in field and the time out field are filled. My thought of how to do that is when X comparison field is full, Y comparison field from the record where X comparison field is empty is copied to Y comparison field on X=full record. I’m not certain of the commands to make this happen or if it’s even possible. I’d be grateful for any
Use case The recently released, in beta, Metadata API is a great start to a long requested feature by developers here. Providing programmatic access to a user’s base IDs/names is immensely helpful and should help simplify many development workflows. One addition that I’m sure would be helpful for many developers is adding information and routes to tailor API requests based on a specific Airtable Workspace. While many users and organizations probably limit the number of workspaces they have based on features/pricing (e.g. have 1 Pro workspace where bases that need custom apps and scripting live, and have ‘N’ free workspaces to more logically group bases that don’t need pro features). For my own account, a simplified version of the workspace I have access to is: Work (Pro account; bases relevant to all departments) Work (Free account; bases relevant to my specific team) Personal Testing Many of the Airtable apps I develop are targeted towards workspace #1: the cross-cutting, company-wi
Hi, I’ve tried installing and launching a hello world app from the documentation for the first time today. I encountered a few issues initially trying to install the CLI, however I eventually seemed to get it working. The issue I’m having now is with the ‘block run’ command - after successfully using block init, the block run command leads to a large amount of errors which seem to stem from a few files not being found during the start of the process: /Users/craigronald/.nvm/versions/node/v13.14.0/lib/node_modules/@airtable/blocks-cli/transpiled/src/builder/node_modules/yaml/index.d.ts: Cannot read property 'get' of undefined /Users/craigronald/.nvm/versions/node/v13.14.0/lib/node_modules/@airtable/blocks-cli/transpiled/src/builder/node_modules/yaml/types.d.ts: Cannot read property 'get' of undefined /Users/craigronald/.nvm/versions/node/v13.14.0/lib/node_modules/@airtable/blocks-cli/transpiled/src/builder/node_modules/word-wrap/index.d.ts: `export =` is not supported by @babel/plugin
I’m trying to delete duplicate records from a table. I have table “Table1” that contains linked fields “Field1” and “Field2”. Where multiple records have the same values in “Field1” and the same values in “Field2”, I want to delete all duplicate records that are newest, leaving the original record that is oldest. In the below example (just for illustration purposes), “Record1” and “Record2” have the same values in “Field1” and “Field2”, and “Record3” and “Record4” have the same values in “Field1” and “Field2”. After running the script, “Record2” and “Record4” should be deleted (they’re the newest) and “Record1” and “Record3” should remain (they’re the oldest). [ {"Record": "Record1", {"Fields": [{"Field1": "Value1"}, {"Field2": "Value2"}], "Created": "2020-01-01"} {"Record": "Record2", {"Fields": [{"Field1": "Value1"}, {"Field2": "Value2"}], "Created": "2020-02-02"} {"Record": "Record3", {"Fields": [{"Field1": "Value3"}, {"Field2": "Value4"}], "Created": "2020-03-03"} {
Hi there! I´m developing a chatbot using Twilio and at some point, I need to collect the data inputs from the clients that talk to my bot, and then post it into an airtable base. I don´t have much coding skills, so my guide was this Dabble Lab tutorial: https://www.youtube.com/watch?v=xjt9YhNFrno However, the Twilio function proposed in the video isn´t working. Here is the code: exports.handler = function(context, event, callback) { let member = { name : event.name, email : event.email, date : Date.now() }; var Airtable = require('airtable'); var base = new Airtable({apiKey: context.AIRTABLE_API_KEY}).base('appISrkMnNdL65Lzj'); base('Members').create(member, function(err, record) { if (err) { console.error(err); return; } console.log(record.getId()); callback(null, member); }); }; When I try to make a POST request via Postman, this is what happens in my Twilio Console: And this is the capture of Postma
Hey there, expandRecord is really a great feature because it can eliminate the need for me to develop edit record forms in my apps, but for that to truly be used for that, it needs to accept the list of fields to display. @Taylor_Savage, is there an ETA for that? Related question - anybody knows what view is used to display the expanded record? If I’ll know how to control that, I’ll be able to edit the displayed and hidden fields in that specific view. Thanks, Ronen Babayoff Eazyapps
Hello I am trying to write a script that detects duplicates. Currently the if statement is triggered and it increase i(which tells me how many duplicates their are), even when the two fields do not match. let table = base.getTable(“Policy”); let view = table.getView(“All Fields”); let first = table.getField(“PolicyNumber”); //Lookup Field let sec = table.getField(“PolicyNumber”); let result = await view.selectRecordsAsync({ sorts: [{field: “PolicyNumber”, direction: “asc”}]}); let result2 = await view.selectRecordsAsync({ sorts: [{field: “PolicyNumber”, direction: “asc”}]}); for (let record1 of result.records) { let thedup = record1.getCellValue(first) let i = 0; output.text(thedup) for (let record2 of result2.records){ let cop = record2.getCellValue(sec); output.text(cop) if (thedup=cop){ i++ if(i>1){ output.text(“help”) } } } } This is the output i currently have 12 entires: B0750RNMFP1709519 - 001 B0750RNMFP1709519 - 001 B0750RNMFP1709519 - 003 help B0750RNMFP1709519 - 004 help B
How can we get the particular data to get searched and populated with Airtable formulas for search on the Website?
I have a table 1 “user” linked to a table 2 “event”. Via Post API, the users create any events where I collect de {user.email} like "email": "{user.email}" ]. This is to be able to link users informations in the Event table with lookup. Then, the goal is to display event with a GET request and add event information + users informations. But, the problem is, with the POST request, i can’t send a Text string (le user email so) from the API to the linked field… It necessary to give the row ID matching with the User record from the User Table. Do you have any idea to be able to directly send, via API call, the user email as text ? Thanks you for your help
Does anyone know if you can get babel plugins working with base run? I’d like to use Styled Components and the css prop so I can write quick inline css. Is this possible?
Hi, I’m stuck with one problem. I’d like to send Mailjet email with the Airtable Script automation. I succeed to send a Mailjet SMS with this code : let inputConfig = input.config(); // the input variables in Airtable let response = await fetch('https://api.mailjet.com/v4/sms-send', { method: 'POST', body: JSON.stringify(inputConfig), headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer Mykey' }, }); The problem is that, in Mailjet dev API, they said to use this code for sending Mailjet template : curl -s \ -X POST \ --user "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE" \ https://api.mailjet.com/v3.1/send \ -H 'Content-Type: application/json' \ -d '{ "Messages":[ { "From": { "Email": "pilot@mailjet.com", "Name": "Mailjet Pilot" }, "To": [ { "Email": "passenger1@mailjet.com", "Name": "passenger 1" } ], "TemplateID":
Hi, I am experiencing errors in airtable’s ‘Find a Record’ in Zapier. Does anyone also has the same issues? Can you tell me what have you done to fix it? thank you very much in advance.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.