Need development and API help? Ask your questions here!
Recently active
I'm currently using my Google Workspace account (which has 1500 emails/day, not 100 emails/day) to send Gmails through AirTable integrations. However, I'm unable to tell exactly how many emails are being sent with each call (which can vary).In other third party softwares like Pabbly Connect, you're able to see the remaining quota after each call. Is there anyway we can also see this information in AirTable? I need this information in order to know how to load balance email sending across our different workspace accounts.
I've registered a new OAuth integration record on my dev instance of Airtable, however when trying to perform the first step of authorization by getting a code I am presented with the following error:"This third-party app failed to properly construct a request to Airtable: invalid client_id or mismatched redirect_uri"This is the URL I am using:https://airtable.com/oauth2/v1/authorize?client_id=1236efdd-af9c-492f-8885-4e5e08fa7890&redirect_uri=https://devtest.planr.io/ords/f?p=800%3A2723&response_type=code&state=436287f7af5f17f557e268439c72b382dce853220653118aec882823&code_challenge=d3N-LaD1qJ-l65YaZiCINK6cAm30GR7_cNX5VckyzhU&code_challenge_method=S256&scope=data.records:read%20data.recordComments:read%20schema.bases:readWhat am I doing wrong?
hey guys,I have a huge database of customers in metabase.comwhat i want to achieve is a script that will access metabase via api, query the bookings table and based on some criteria return value from field ID (booking id).https://www.metabase.com/docs/latest/api/card#post-apicardcard-idqueryNow, this is what i've done so far:1. I managed to create my session token via postman2. I run this script in airtable: const METABASE_API_URL = 'https://CCCCCCCCCC.metabaseapp.com/api/card/AAAAAAAA/query'; const METABASE_TOKEN = 'BBBBBBBBBBBBBBBBBB'; async function fetchMetabaseData() { try { const queryPayload = JSON.stringify({ type: 'native', native: { query: "SELECT id FROM bookings WHERE client_id = '102827'" } }); const headers = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${METABASE_TOKEN}` }; const response = await fetch(METABASE_API_U
Hi All! Can anyone provide some scripting advice - I want to create a script that changes a field type from Multiple Select to a Text field when it runs, and another script to do the reverse. Thanks in advance for any feedback!
OpenAPI is an API specification format which provides a way of creating a standard format to represent a given REST API. There’s a large community of tools built on top of the OpenAPI definition, including mock servers, schema visualizers, and SDK generators for a given language. Using Custom Blocks and the OpenAPI Schema UI we can create block which reads a base’s schema, generates the corresponding OpenAPI definition, and then displays the resulting documentation. Users can then export this schema and run it through any of the open-sourced OpenAPI tools. The Swagger UI also provides a way to make API calls from the documentation, so it can also be used as a playground to experiment with the Airtable API and see those changes immediately reflected in your base. Full source at https://github.com/TheF1rstPancake/AirtableOpenAPICustomBlock
I added a button to a table that forms a task when the button is clicked.The task is an async call to a REST API using Javascript's fetch. I'd like to be able to display the state of the operation, including when its completed.The code:// make the REST API with an async function const response = await updateLicense(config.access_token, employeeNumber, licenseNumber); // dispay the results of the processing output.text(response) Unfortunately, the code doesn't wait for the updateLicense function to complete. Any ideas?
the url I am using (In Power Automate Desktop) ishttps://api.airtable.com/v0/appKJvw9LuKiqGcRt/tbljRNXydGMGabTcf?fields:{"Account No","Case Descriptive"}&view=Update Taxes Monthly - Dad&filterByFormula=AND({DNC Case Master} = 0, OR({Taxes Owed Last Updated} = '', {Days Since Taxes Updated} > 60))This runs without error but returns all fields not just the two I definedfields: {"Account No", "Case Descriptive"}I also tried:fields: {"Account No"}, "{Case Descriptive"}I am pretty sure I am defining fields incorrectly but not sure what is wrong.Please adviseTIA
HI! I have to check if record still exist before making updates on it, but when I use "find" JS API method I receive 403: You are not authorized to perform this operation response on non-existing records. Same situation with the update method.When I use these methods on existing records everything works fine. Also current API-user have permissions to create new records.I use Personal access token with data.records:read, data.records:write scopes.Please help me to figure out why I get so strange response on non-existing record.
I was wondering if anyone had a workaround for displaying/hiding fields on an interface programmatically. (Softr can't do it, bubble either, I'm trying to avoid going fully custom UI)What we want to achieve is the following:WHEN a field is created in a table by a user (they do through a form connected to a Make scenario, not thru the Airtable data view)THEN that field gets added to a specific grid within a page within an interfaceWe don't want our users to access the data view or interface editing page, and we're kind of stuck.If anyone's got any idea, that'd be great!
There are 131 fields in my table. After retrieving 2000 records and making them synchronize their fields, i only receive success for 300 records when using scripting to import them to my Airtable table. Why is this?
hello guysI have outdoor laser tag business , I’m running airtable about 5 months after every client booking birthday . I need login to other service enter the details: name kids , ages , address , city , and created birthday invitation. it’s looks like this : http://fiestaa.co.il/inv37.php?id=15111I’m thinking why I do it in this way . if I have the all details on airtable already . Why no use them to create dynamic link from my website . I need same design for the birthday invitation. It’s video background . Each client need birthday invitation so in click from airtable it’s create unique link . And update airtable with . The next step is to use make and send to client massage with the url to share his family & friends . Thanks , David
Hi, I'm using Create Record API, my requirement is sending a image to a field in table. But the API requires to send an image URL instead. Would anyone know if there is a hosting service that can return the image URL while ensure the image uploaded is not being public? Or would Airtable team have plan to provide such a service? Thanks!
Issue: I am trying to have a "Number" field to get updated with values starting from 1, 2, 3, etc based on the position of the task in the chain. I am seeing the numbers are coming off: like 3,3,3,3, for a lot of tasks in the same chain despite there being a hierarchy. And yes there are no circular references for that chain or any branching etc.Script Description: The script aims to update records in the "Tasks" table of my Airtable base. Here's what it does:It retrieves records from the "Tasks" table, selecting specific fields: "Predecessors", "Tasks", and "Next task".It filters the retrieved records to find tasks that don't have any successor tasks (i.e., "Next task" is empty).For each of these final tasks, it traverses the chain of predecessors to update a field called "Milestone Name" with the name of the final task.It performs updates in batches of 50 records to avoid hitting Airtable API rate limits.Code: const table = base.getTable('Tasks'); const query = await table.
Hello Airtable Community,I'm reaching out for some assistance with a scripting block in Airtable. My objective is to identify duplicate records in a "PNS - Content samples" view of the "PNS" table, based on a unique "Link" field, and merge them. The script should combine the records such that for each link, we keep a single record with data aggregated from the duplicates. The requirement is to preserve non-empty field values from the first record and fill in any empty fields with data from the second record, ensuring that no data is lost from the combined records.The approach I've taken involves:Grouping records by the "Link" field.Iterating through the groups to aggregate field values.Updating the first record with the combined data.Deleting the remaining duplicate records.Here's the code: async function mergeDuplicates() { console.log("Starting the duplicate merging process..."); const table = await base.getTable("PNS"); const view = await table.getView("PNS - Conten
HiI'm looking to embed the an airtable form into my site but I noticed that unless we set the COEP header to be unsafe-none rather than credentialless. Are we not able to set the iframe as credentialless for added security?Thanks!
I had been importing an Airtable in to Power BI, only needing it every few months, but now am unable to refresh. It appears that API_KEYS have been depreciated as of February and I'm unable to find a resource for how to reestablish the connection.Does anyone have reliable M code I can drop in the advanced editor to get my tables back?I appreciate the assistance. For what it is worth, this is the entirety of the existing M that I had been using. It now says that it can't authenticate with current credentials. I have set it to anonymous, but to no avail. 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&"?api_key="&API_KEY&""])) else
const table1 = base.getTable("Table 1") const view = table1.getView("Grid view"); const record_view = await table1.selectRecordsAsync({fields: ["Name"]}) const record_filtered = record_view.records.filter(record => record.name === "Test 1") I'm just trying to understand how scripts work on airtable. i'm not a expert on JS so it can have some errors, but i think i already did the filter in a right way but i can't console.log anything about the "record_filtered"And im trying to update the record_filtered, but i can't get the recordIdlet table = base.getTable("Table 1"); //let record = await input.recordAsync("Converting record", table) const record_view = await table.selectRecordsAsync({fields: ["Name"]}) const record_filtered = record_view.records.filter(record => record.name === "Test 1") let test1 = "gui123" let recordId = record_filtered.id; await table.updateRecordAsync(recordId, { "Name" : test1, })
Trying to debug code written by someone else. It seems that the following code doesnt return more than 100 records even though fetchnextpage is set.This seems to have stopped working recently and I'm not sure what has changed. return new Promise((resolve, reject) => { base(tableName).select({ maxRecords: 100, view: viewName }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { data.push({ ----fields---- }); }); } fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } resolve(data); }); })
I'm interested in creating a share link for a View automatically in response to user requests through our backend server.Could anyone tell me if it's feasible to generate such a link via an API or through any other methods?Thank you!Appendix:The image shows the way to generate via the Airtable web console.
Hi everyoneI'm trying to 'visualise' the database I've built in some form of Sitemap Hierarchy with connected/relational fields and the ability to filter those connected/relational fields and it doesn't look like Airtable has this functionality native, closest I've found is the Org Chart extension, but doesn't seem flexible enough.It's likely that what I'm asking is likely impossible but I don't know if there's a better way to setup the database tabs to make the hierarchy work.For context, we're looking to visually map via a semi-automated export function the hierarchy or an Organisation that has Departments, Sub-Departments, Teams and People within it that are all separate tabs.Any advice or examples of how you've managed to make a Org Chart or Sitemap Visualisation work.TIA Charlie
Hi,I developed custom extension in airtable..In this I am implemented Oauth manually and its almost done.The blocker i am facing is after getting access token i dont know the redirect url for that extensionhow can i get the redirect url for the extension that i am building
Hello there,Everytime an event occurs, a tool add a new record in Airtable. Once added, it's automatically sorted by Creating Time, so the newest one is always on top.What i need it that if the total rows is 500 and a new record is added on the top, Airtable automatically deletes the number 501 (the oldest one).If not possible another viable solution would be that the 10th of each month for example, or 2 times a week, Airtable automatically deletes columns from 500 to the end.Hope you can help, thank you very much!
HiI'm trying to make an AIRTABLE API callTo update a recordThe field I want to update is a field of type numberAnd when I try to enter a number I get this messageField "Hours used" cannot accept the provided valueOf course I enter only a number without signsThis is the body of the API call I'm making{"fields": {"Hours used": "35"}}I will rejoice in repentanceThank you
Hello! I got unexpected behavior in airtable web api.I use "Update multiple records" (https://airtable.com/developers/web/api/update-multiple-records) method for update or create records if not exists in my table. I use it with "upsert" parameter with two key fields like ["Handle", "Image Position"]. First one is text, second one is number.Expected behavior: update records if them exists, otherwise create new. Got behavior: always create new records.Note that updating with one key field works as expected.In general we need method to import records to airtable from our internal database and keep them up to date.
I’ve made a GPT assistant for e-com clients that can recommend products. This tool is made on make.com. The scenario is made with webhooks, open ai module (convert user query to airtable formula), search airtable records, open ai module (encode formula to URL) and airtable make an api call module.Everthing works except the api module. I believe it's the URL because I have given my PAT every scope, connected it to the base, and have correctly connected it in make.com. The api module is a get request and I have used the list records url from the api documentation. I have tried these two forms of URL encoding and still no luck:v0/appBUitd0yNopP1w7/Imported%20table?maxRecords=3&view=Grid%20view&filterByFormula=AND%28%7Bcolour%7D%20%3D%20%27Blue%27%2C%20%7BCategory%7D%20%3D%20%27Sling%20Bag%27%29https://api.airtable.com/v0/appBUitd0yNopP1w7/Imported%2520table%3F?filterByFormula=AND(%7Bcolour%7D+%3D+'Blue'%2C+%7BCategory%7D+%3D+'Sling+Bag')Any help would be greatly apprecia
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.