Need development and API help? Ask your questions here!
Recently active
Hello, I’m attempting to integrate Airtable and Power BI to create reports. Using the API authentication key, I am able to connect to one of my tables in Power BI. However, the JSON string only contains 100 rows when connected. A more complete explanation of this issue is covered in this short tutorial and subsequent comments: mpolino.com – 29 Apr 16 Airtable and Power BI - mpolino.com Warning, this may be long and boring, but I need to write it down. The next Lizard Wong book is finally, finally, moving along nicely. For a while I’ve tracked my writing and word count using Wordly, an iPhone app. It works well enough, but at some... Any ideas for resolving this? Thanks! - Meg
I am reviewing our approach to websites - and want to connect airtable and the CMS - so that writing / approvals etc get done in airtable and then this automatically updates Wix (for example) with the content into their CMS databases. this would have the benefit of not needing to have lots of people log into Wix / or a website CMS and having one source of our data that we want to show. - e.g. blog posts I am not loking to embed the Airtable DB in Wix - that bit is easy - but doesn’t provide the same opportunity to play with design as being in wix DB any thoughts / help?
Here’s a simple script - so small it should be labelled a scriptlet. It takes a crappy date value stored as a string from one field and scrubs it for use in a real date field. In practice, it might be easier to clean up this date column easier with a formula field, but then you’d have another field with dependencies. While formulas are fine for simple tasks, this little block can implement very complex string handling and math computations. As such, this example is simply an educational step to get some experience with the new Script Block. It could be broadly applicable to almost any data cleaning or data-building process. (complete source provided at the bottom) The data import and resulting cleaned column look like this: Now, imagine a case where you had the lat/lng of your business and the lat/lng of every sale. How could you calculate the distance from your business to each buyer’s location? In a very similar script block process, you’d simply pass the two locations into this f
We’re trying to write a script that will copy all of the records in a template table into a work table. One of the fields in the template table is a single select field, but we can’t seem to copy its value into the new table. We can create a query with the selected records and iterate through them, but can’t get the format right for the single select field. In the following code, the first two fields copy fine, but we can’t find the correct format to copy the value of the single select field “CATEGORY”. fields: { 'BUYER CHECKLIST': task.name, 'SORT': task.getCellValue('SORT'), 'CATEGORY': ???, } Can anyone point us in the right direction? Thanks!
Hey all. I have been building a Video Tracker Base for my Youtube content. It’s honestly one of the most enjoyable things I’ve worked on in Airtable so far. Anyway, I’ve used this post to make an awesome clipper to pull in my existing videos (with the Clipper App). However, one common data tracking piece is what the view count is at 24 hours. I’ve never had a way to track this, and without setting a timer and manually going to track it myself, I’d love to make an Automation that scrapes the views off the video page. I know the view count css selector is: #count > yt-view-count-renderer > span.view-count.style-scope.yt-view-count-renderer Which works great in the clipper from the above-linked post. Some examples of fields this would probably use : Date Field called: Published (the publish date to trigger the 24hr timer) Number field called: Views 24hr (where to put the scraped views) URL Field called: Live URL (Youtube URL of video) I’m thinking this should be do-able but
Hi! I am using an automation to run a script when a record is created in SIGNUP table. The script should link the records (which are people) between two tables—SIGNUP and CUSTOMERS. The primary field in both tables is the person’s name but it is easiest to match the records via the email addresses. I am getting an error saying that the link field cannot accept the value. I am using the input variable. See photo. let recordId = input.config().recordID let trainingTable = base.getTable(“SIGNUP”) let recordQuery = await trainingTable.selectRecordsAsync() let recordToUpdate = recordQuery.records.find(record => record.id == recordId) let trainingEmail = recordToUpdate.getCellValue(“SIGNUP EMAIL”) let applicationsQuery = await base.getTable(“CUSTOMERS”).selectRecordsAsync() let applicationsToLink = applicationsQuery.records.map(applicationRecord => { if (applicationRecord.getCellValue(“CUSTOMERS EMAIL”) === trainingEmail) { return { id: applicationRecord.id } } }) await trainingTable.u
Is the airtable API down? Please see the screenshot below. Can someone help me?
I am working to develop a custom integration between my Airtable base and my Office 365 system via Sharepoint and PowerAutomate. For Context: My overall project involves pushing selected emails directly from Outlook into Airtable, with a pdf of the email text and uploading the attachments. Power Automate allows me to create the pdf of the text and the attachments into any cloud storage system, I want. However, all of those systems only seem to output sharing links that require some kind of authentication or are view-only style “sharing”. Is there a way I can get a URL from any of those services that would actually allow Airtable’s api to download the file and get the proper file type, name, and other metadata?
Hello everyone! I am not familiar with scripting or programming so I was wondering is it possible to create a script that pulls attachments from multiple different fields and compile them into a single field? Below attached is an example of what I am trying to describe. I want attachments uploaded in [DASH] to be compiled into [FM] All other customs docs.
Hey everyone! I’ve spent hours dealing with this issue, and I think it’s time to come hat-in-hand to the community now. I’ve created a royalty system that pays out composers each month. I’m working on splits now among our composers, so each song in our catalog may have a link to one or more composers. Up until now it was very easy to do a “select” call to our song base and filterbyformula on our “Composers” lookup field by individual composer and then do various nifty operations on that composer’s songs for the payment period. But NOW some songs have more than one composer attached, and when I try to do various iterations of filters that I’ve tried, I either get ZERO songs or ALL songs, neither of which are ideal, to say the least. Does any Airtable API Javascript guru out there have the answer where I can make a call to the Songs and filter by Composers (with more than one attached in a Lookup field) where I can do what is essentially a “contains” filter? Thanks in advance! Cindy
I’m trying to make a script that will read from a Date field and copy and paste that data into a Link to field in the same table. If there is a better way of doing this I am completely open to it. The end goal is to setup an Automation that will check for a change in date from the source and reflect that in a weekly report table.
I have a table that tracks the steps and results in a process. Sometimes we modulate the steps, but often the steps remain the same over multiple submissions/rows. For example, we have molds that need to be cleaned using a variety of different tools, solvents, and methods. I have a column titled Mold Cleaning with options “Standard” and “R&D”. I would like to be able to have subsequent columns autofill based on the selection in this column. If “Standard” is selected, then I would like the tools/solvents/methods to input our standard selections for that. If “R&D” is selected then I would like for the tools/solvents/methods to remain blank for input. Can this be done through scripting or some other means?
Hi, I have a Product Management Base that houses a series of production deadlines. As each deadline, set in its respective Date field, approaches the 72-hour mark, a corresponding Function field flips from “Work In Progress” to “Upcoming.” My question is as follows: is there a way for this change to trigger an email, either through Zapier or Integromat? From what I’ve seen of Zapier, it’s Airtable triggers only involve adding new records, not updating existing ones. I’m new to integration so anything helps!
Hi guys, I’m wondering if what I am looking to do can be done via an out the box automation, or if I need a script writing. Or both! In short, we are a villa rental agency and send an email to our property owners regularly to ask them to update us with their latest availability. We are then updating the ‘last updated on’ date field at property record level as and when we receive the updates. I was then going to run an automation to send an email to the owner when the ‘last updated on’ date is more than 7 days ago. This would then run in the background and would email owners accordingly when the availability data is out of date by 7 days, correct? However, in some cases owners have more than one property and may have recently updated us on one of them, but not the others, so ideally we would implement something that could check the owner record first for the total number of properties linked to them, then check the last updated on date for each and then bring across the name of each pro
Hi, I am working on a custom block and would like to automate my deployments. I want to write some tests for it, but I haven’t had any success with this as of yet. Any ideas for how this can be done?
Hello. I have a series of actions in an Automation set up to create records (tasks) when a new project is created. Sometimes there’s a snafu and the project is created accidentally or there’s a mistake. Meaning I need to re-run the steps in the Automation but they won’t run again on their own. I thought I could create a script to choose a record (Project) to run that specific Automation that creates the records (Tasks). Is this possible or would this all have to be generated by a script? TLDR: Can you run an Automation selectively by a Script > Record Picker
Here is my workflow: User submits a form I built in Jotform. I am using On2Air’s Simple Select widget to pull records from Airtable. In Zapier, I am using a catch hook, creating a new Airtable record and then sending the data from Jotform to Airtable using On2Air update record action. . The problem that I am having is that when I map the data for up to 10 linked records, unless I send exactly 10 linked records, it won’t work (too many extra commas). Sometimes the user may only include 1, 2, 3…10 records. Anyone know how to format the data in Zapier or in Jotform before it is sent?
Hello, I try to test scripting but i have a generic error that really doesnt help me to find the solution :slightly_smiling_face: “There was an unexpected error while executing your script.” let table = base.getTable("Max"); let queryResult = await table.selectRecordsAsync(); let record = queryResult.records[0]; console.log(record.getCellValueAsString("Rue")); My goal is to have a trigger where i get the new row & do several things
Using a script, what is the syntax for clearing a value from an existing record in a single select field?
Hi everyone, I’m trying to write a script here to do a thing but I’m not a coder. I can usually reverse engineer examples to get by but right now I’m coming up short. Here’s what I"m looking to do. I have Table A Table A has records for projects taco, sandwich, and cereal. The base has tables corresponding to each project and share the same name. Tables taco, sandwich, and cereal have records for each project update, most importantly the Notes field. For each record in Table A, I want to grab the latest record from the table that matches the record name and display the Notes field content in a field in Table A. I figure I’ll put this in an automation that runs when Table A is opened. I can make various parts of my intent work but I can’t put it all together. Can any of you epic geniuses help out?
Hi guys, can I ask you to expose launch mode in the script? Reason: I have a huge table and the current script from Apps does await input.recordAsync() from filtered data to speed up the selection(e.g. filters out records with past Due Date, ‘not ready’ status, etc.) I found that Button may be a nice addition if you want to initiate the script from any record. But it has limitation: Can’t use record from button field To use records from button field with input.recordAsync, use a Table or View as the source. So, with session.launchMode I can modify the script to ask input.recordAsync() just from the full table and use filtered records if I launch the script from Apps. Best regards, Maks
Hi, I need to know if this requirement is possible. I using Airtable with API and currently I have multiple table link to each other. The issue is the order of the data linked is important for me. For example: in the image attach, I want to link the data with certain order by using its data. tm_26137 -> days = 3 tm_29311 -> days = 5 tm_29311 -> days = 7 I want to arrange the linked data based on the days value, lets say I want in days descending value. Is it possible? this is to minimal the code effort. Thank you in advance
I have a script that’s currently working to create one record on my Project/Yarn junction table, but I need it to create multiple records, one per linked cell value in Yarn (from stash), if there are multiple of these. I’ve had a looked on the forums but am struggling to find the solution, can anyone help? This is my current script: let table = base.getTable(“Projects”); let record = await input.recordAsync(‘Select a record to use’, table); let populateTable = base.getTable(‘Project/Yarn’); if (record) { await populateTable.createRecordAsync({ “Project”: [{id: record.id}], “Yarn used”: record.getCellValue(‘Yarn (from stash)’), }) output.text(Record created: ${record.name}) } else { output.text(‘No record was selected’); }
I’m trying to add more intelligent time support to one of my bases, so I went looking for a free time API that I could query, and I found this: worldtimeapi.org World Time API: Simple JSON/plain-text API to obtain the current time in,... It looked like it would fit the bill, so I built a quick test in the Scripting app. However, I hit a CORS-related error, so I shifted testing to a script action in an automation. While I’m no longer getting an error, I’m also not getting the response I’m expecting based on the examples on the above site. Here’s my simple test based on the first example shown on the homepage: let result = await fetch("http://worldtimeapi.org/api/timezone") console.log(result) This is supposed to return a full list of timezones, but this is what the console shows: I’m still relatively new to calling APIs, so it’s possible I’m missing something basic, but I’m not sure what it is.
We’re excited to announce a new input method for the scripting block: input.fileAsync ! This enables script users to upload files, which the script can then use to do things like create or update records. If you’ve ever wanted to preprocess the data in your files before importing it to your base with the CSV or XML import block, you can now do so with input.fileAsync ! Because you can access the file contents from inside the script, you could also do things like conditional record creation or custom fuzzy matching to update existing records. We’re excited to see how you can use this to empower your scripts! The returned value from the file input gives you access to the uploaded File itself, as well as the parsed contents of the file (if supported). Currently, parsing is automatically performed for .csv, .xls, .xlsx, .json, .xml, and .txt files, giving you immediate access to the underlying data. Check out the full documentation for input.fileAsync in the API reference inside the bl
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.