Help

Re: Async functions work in automations scripts but not scripting app?

Solved
Jump to Solution
2413 1
cancel
Showing results for 
Search instead for 
Did you mean: 
Noah_Coleman
6 - Interface Innovator
6 - Interface Innovator

I’ve written an automation script that I’d like to migrate over to the scripting app. I know that there are some differences between the two, but I’m having a lot more trouble than I thought. The script connects to an external API and pulls data from the API into my base. I seem to be running into issues with the async functions I’ve written to connect to the API and pull the data in. The code works when it’s not wrapped up in a function, but fails when it looks like the example below:

async function testFunction(){
let response = await fetch('https://api.github.com/orgs/Airtable');
console.log(await response.json());
}
testFunction();

This code above works as an automation script, but not in the scripting app.

1 Solution

Accepted Solutions
Dominik_Bosnjak
10 - Mercury
10 - Mercury

Await the testFunction() invocation?

See Solution in Thread

4 Replies 4
Dominik_Bosnjak
10 - Mercury
10 - Mercury

Await the testFunction() invocation?

You should await the testFunction, as Dominik mentioned.

Also, fetch works differently in automation scripts versus scripting app. Try using remoteFetchAsync instead of fetch. See the documentation for more details.

Noah_Coleman
6 - Interface Innovator
6 - Interface Innovator

Adding await solved it, thanks! Kuovonne, I can see why remoteFetchAsync might work better on an automation since it’s coming from the Airtable server itself. Thanks to you both for the help!

Glad to hear your problem is fixed.

It’s actually the other way around. remoteFetchAsync is for use in scripting app, not in an automation script. It is most useful when fetch in scripting app causes CORS errors that don’t happen in automation scripts.