Need development and API help? Ask your questions here!
Recently active
Hello Everyone! I am creating a custom wordpress site. I have an articles page that is looping through all of my articles using airtable as an api and cURL. When I click on the link for one of the articles, I would like it to bring me to that article’s specific page (dynamic template page). How can i create a link that will grab the information for that specific airtable record? Issue is that i would normally have to do record[‘0’][‘fields’][‘Name’] however, since my page is dynamic, i cannot put the specific array [‘0’].
I’m looking at removing all collaborators from a cell. I have attempted to send different variations of data and always receive 422. I’ve tried to: Update the field with an empty string: ‘’ Update the field with an empty json: {} Update the field with an empty record: {‘id’ : ‘’ } I can always update it correctly with {‘id’ : ‘usrXXXXXXXXXX’} I know I can send a valid request but I can’t send a valid request to clear the cell. The cell is clearable in Airtable on the web interface, so I believe it can be done but the API documentation doesn’t say how to clear a cell with PATCH. Using PUT seems drastic to update a single cell by sending all the other data except that cells data. For reference, most field types are an empty string apart from the checkbox which is the string “false”.
Hello airtable community, I’m just wondering how to remove collaborators via API calls? Currently I have adding collaborators working well, I send the get request from a custom UI to our server, which then handles the api calls to airtable, with just the ids of the collaborators I need to add to the list. Those new collaborators do show up when I inspect via airtable. When I want to remove collaborators, I understand from reading the api docs, just send in the objects of the collaborators I want to keep. I send in the new updated list of collaborators without the one we need assuming that should remove that collaborator. That does not work. For both my attempts to add or delete, I send in an array of objects with ids only. Any ideas on how to handle removing collaborators via API?
I am trying to patch fields, however I am facing trouble with the record ID: Here are the records {"records": [{"id": "recMcKXnqXUsJ2Ptu", "fields": {"Name": "GoodLife"}, "createdTime": "2019-10-10T11:56:56.000Z"}, {"id": "recayWtmjGL5k1kgK", "fields": {"Name": "Love"}, "createdTime": "2019-10-10T11:56:56.000Z"}, {"id": "recqCoVKArOQS4UPL", "fields": {"Name": "Fashion"}, "createdTime": "2019-10-10T11:56:56.000Z"}]} And here is the error message I received {'error': {'type': 'ROW_DOES_NOT_EXIST', 'message': 'Record ID recayWtmjGL5k1kgK does not exist in this table'}} As you can see above, there actually is a record with the ID recayWtmjGL5k1kgK, hence I do not understand the error message.
I’m about to develop a public view of our entire product database, which is one Airtable base of around 2000 records. Right now we’re having something like that in place, but basically just as an embedded view (the standard Airtable functionality) – but we’d like to enhance this public view, hence the custom developing need of it. The functionality of our public view will have to enable filtering all of the products on multiple levels – e.g. product category, price range, colour … you name it. Since this will be a public view, and hitting the api limits would happen easily with around 2000 records (I guess), I believe some sort of caching of the entire base data is in order. My main question is: how, and in what way? My first thought is to poll for the Airtable base at like an hourly interval, and saving all that data in one json file, then reading that json file on the client side with vue.js and outputting it in a gallery sort of way, with all the filters in place. That still leaves
I have a table with a multiple linked reference field. In airtable, I can drag and drop the order of these references, and changing the order does have an effect in the return result. However, it isn’t behaving fully as expected. I’m using graphql, and not sorting by any field which kinda works: exercises( sort: { order: ASC } ) { id name description } My question is if there’s some field tied to the drag and drop reordering of references within airtable, or else how else I should handle ordering of multiple linked references. I’m not sure how to solve the problem otherwise, since there could be one or many references, and they’re all shared resources so can’t have an “order” field (an individual could be referenced many times in the parent table in many possible orders).
I have a table/records with a computed column/fields (using a lookup function) - let’s call this field/column F0. I would like to PATCH the table by changing the values of field F1 and leave everything else as is. However, when I send the request I obtain the following error { "error": { "type": "INVALID_VALUE_FOR_COLUMN", "message": "Field \\"F0\\" cannot accept a value because the field is computed" } } Any guidance would be appreciated!
Is it possible to amend records using API without losing linked fields?
Hi All, I’m very new to airtable and I am trying to write a URL to POST to my airtable and I am trying to figure out what the URL should be. I am trying to post a jpg as an attachment to a cell. I was able to pull data from my airtable with - https://codepen.io/airtable/full/rLKkYB. I am not having success with posting data to the table using the codepen listed. I am using Airtable in Dynamo for Revit. Any guidance could help. Thank you for your time, Mike
I am fairly new to Airtable and was having trouble finding information on the filterByFormula option in the API. I was trying to get rows back based on a DATE field using a date range, so any date that fell between my startDate and endDate. I couldn’t find any specific examples, so I am posting this to hopefully help someone else that tries to do this. Below is some javascript code using airtable.js and this is what I used to be able to get results back within the range: let data = await base(‘Timelogs’).select({ filterByFormula: IF(AND(IS_AFTER({DATE}, '${startDate}'), IS_BEFORE({DATE}, '${endDate}')), 1, 0) }).all() This may have been elementary but I about ripped my hair out trying to get this UBER simple process to work. Edit: There are backticks (quotes would work too of course) around the IF() portion. This editor doesn’t seem to print them. startDate and endDate are variables in the code and I am using template literals to pull the values in.
I couldn’t find this in the documentation or answered on this forum. I was recently brought in to get a handle on our organization’s technology. They use Airtable extensively and have a few zapier automation. Recently a high-level employee was released from the company causing a security audit (by myself). Which accounts (what level) can generate an API key? Is there a way for admin accounts to view and control API access for accounts that are not their own? ie: I want to see all accounts that have generated an API and/or be able to delete and view any automation occurring across all bases in a workspace. Thank you for any assistance. Matthew Moran
Hello, I’m getting the following error: Class { error: ‘UNKNOWN_FIELD_NAME’, message: ‘Unknown field name: “2019-09-16”’, statusCode: 422 } in a select from a view with the following config { "maxRecords": 1, "view": "Employee data", "filterByFormula": "AND({SlackId} = 'UD5UYN55L', {Active})", "fields": [ "Firstname", "Lastname", "ATEmail", "SlackID", "Office", "Type", "Team", "AutoCreateNextWeek" ] } where the field marked as unknown is not present. This is my code: let getActiveEmployee = (slackId, airtableClient) => { var config = { maxRecords: 1, view: "Employee data", filterByFormula: "AND({SlackId} = '" + slackId + "', {Active})", fields: fields } var select = airtableClient('Dispatch').select(config) console.log("config1: " + JSON.stringify(config)) return new Promise((resolve, reject) => { select.firstPage((err, records) => { if (!err) { if (records.length > 0) { console
Not sure where to start after doing the tutorial? We’ve put together a few examples of custom blocks that can help get ideas flowing. The code for these examples are in Github. What have you found helpful in your ideation process? VISUALIZATIONS Simple Chart Summary CUSTOM REPORTING Print Records SELECTIVELY UPDATING RECORDS Update Multiple Records Block EMBEDDED PREVIEWS Youtube Preview To-do List ENRICHING DATA VIA API Wikipedia Enrichment Block
I’m curious if anyone has been able to access a single table’s model via the API. I can’t find anything in the API documentation that allows it, but I assume it’s possible due to the fact that the API documentation itself is being generated based on the tables’ model/columns defined within an Airtable base. What I’m trying to do is create a client-side data sanitiser and validator. I’d like to control the relationship between the client and the app. Ensuring the data is formatted correctly is a time saving measure that I can do before submitting to the Airtable API and helps me to provide a nicer smoother experience for users. It should also hopefully let me store valid data offline (which won’t error later when being submitted) to then submit to the Airtable API later when connectivity is available. Since Airtables can have their model/columns changed easily, fetching the model could also mean automating any migrations or potentially reconcile differences between one version of the AP
Hi, So i would like to print my A4-document from the Page Designer block on my mobile phone (iPhone in this case). Is there any way to access/print/download this document without going to the desktop version and push print? Thank you.
Hi guys, I’d love to see the existing ‘filterByFormula’ feature for ‘List records’ to be implemented for (batch) deletion of a record set. The GET request already has this option which would fit most (if not all?) ‘cleaning up’ scenarios too IMHO. Just replace ‘returned’ with ‘deleted’, issue a DELETE request to the table endpoint and we’re done. :winking_face: filterByFormula A formula used to filter records. Only records which satisfy the formula will be returned. If combined with view, only records in that view which satisfy the formula will be returned. As a side note: I could also use this in UPDATE situations. To set timestamps or other flags for a set of records. Best, Arthur.
I am working with the Airtable API using PHP to retrieve records. I find that I can use curly braces around field names when using filterByFormula. However, I cannot use curly braces around field names when specifying which fields to include or which fields to sort by. This does not appear to be a problem because field names with spaces are retrieved even without the curly braces. However, I still found being unable to include curly braces confusing. Has anyone else noticed this? I didn’t see this covered in the documentation.
Hi, when using the API to read the stored records, what’s a good way for the client to know if there’s been updates to the content? Do we have to make the decision ourselves (ie download the whole data and compare), or is there a way to check “last updated”? Sorry if I missed that somehow.
I was trying to build an app based on Airtable using Appsheet. With one case I got an error in Appsheet, that turned out to be a limit on the Airtable site. It looks like the API does not handle more than 21 columns well. Is this a familiar problem? See below the feedback from Appsheet support, who really took their time to find out what was going on: RESPONS APPSHEET SUPPORT: After quite a lot of testing and investigation, I believe I have finally found the root cause of the problem. Roughly speaking, each time AppSheet reads data from AirTable, AppSheet will send a request that contains a list of parameters to AirTable, and some of these parameters are names of the columns to be read. It appears that currently, AirTable imposes a hard limit of at most 21 parameters. Any request that contains more than 21 parameters will be rejected. Since the table that you were trying to add to your app had more than 21 columns, the number of parameters in the request to read this table exceeded 21,
Hi all, I am new to the Airtable community. I have menu items table it contains 15 records. I want to filter the menu key and restaurant key in menu items table. Because i am getting all restaurants and all menus in menu items table. How to filter the both Restaurants and Menus at a time. I placed this code for filtering the menu items:- [{“key”:“filterByFormula”,“value”:“Find(“Sides”, Menu)&(“The Montauk”, Restaurant)”}]
I’m trying to fetch recently modified rows via the API. Seems to me that this should work, but it doesn’t return any rows… filterByFormula: "LAST_MODIFIED_TIME() > '8/17/2019, 7:36:49 PM'", what am I doing wrong here?
I have a base that is a migration from a MySQL db and a web based (I think JS) app. I did not build the original and the person who did has disappeared. I am not a coder. Successfully migrated the data and created the proper links within the base, but the client really wants something pretty on the front end. The db is a list of photographs with info like size, medium, etc. and pieces sold for how much, how many in the series, etc. They want an interface to interact with the db like they had. Is this doable and how might I go about it or might there be someone who is interested in doing the work? Thanks in advance. Howard Goldstein
When attempting to use the PATCH method in Google Apps Script , I get an error INVALID_REQUEST_UNKNOWN . I’m able to do a POST and GET request. Tested my credentials using CURL and this worked. Tried the “HTTP Override” hack and that did not work. function postToAirtable() { var url = 'https://api.airtable.com/v0/appxs9P0mXsqcXs5R/Outreach'; var data = { 'fields': { 'Task': '<Task Name>', 'Outreacher': '<Person>', 'Month': 'May ', 'Status': 'In Progress', 'Go Live Date': '2016-03-01', 'Copy Card Link': [ 'recONM5ul2oaG6yKi' ], 'Label': 'DET' } }; var headers = {'Authorization':'Bearer ' + '<API KEY>'}; var options = { 'contentType':'application/json', 'method' : 'PATCH', 'headers': headers, // Convert the JavaScript object to a JSON string. 'payload' : JSON.stringify(data), }; //Logger.log(options); Logger.log(UrlFetchApp.fetch(url, options)); };
Hello guys. I thought this would be a good place to get help. Please read here: support.glitch .com/t/airtable-database-issues-javascript-project-hoggystyle/13795/10 Please delete the dot in front of .com
I only have 1 table and I need the most recently added record. I tried this code and even tried maxRecords so loop through each id. base(‘Intention’).select({ filterByFormula: ‘{id} = “id”’ }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log(‘Retrieved’, record.get(‘id’)); … Any tips on how I should approach this?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.