Feb 14, 2022 04:20 AM
I have tried a try-catch approach that whenever an option is not found in a single-select field due to typographical errors it will try to find a suitable option from the list of options in a single-select field. I have tested this approach in a scripting app and it works. However, when I applied this to a scripting action in Airtable automation, the field did not accept the value even if works in the scripting app. I don’tqu
Here is the coding block in question:
salesChannel={name: "value"}
try{
if(salesChannel){
await table.updateRecordAsync(recordId, {
"Sales Channel": salesChannel
});
console.log("Updated sales channel")
}
} catch (error){
console.log(channelOptions)
let salesChannelName = salesChannel.name.replace(/\s/g, '').toLowerCase()
console.log(salesChannelName)
let alternativeChannel = channelOptions.filter(channel => {
let channelName = channel.name.replace(/\s/g, '').toLowerCase()
return channelName.includes(salesChannelName)
})
salesChannel = null
if (alternativeChannel.length > 0){
salesChannel = {name:alternativeChannel[0]["name"]}
}
console.log(salesChannel)
console.log(recordId)
try{
await table.updateRecordAsync(recordId, {
"Sales Channel": salesChannel
});
console.log("Updated sales channel")
} catch(error){
console.log(error)
console.log("Cannot Updates Sales channel from the alternatives")
}
}
Feb 14, 2022 10:14 AM
Hmm. What does the console.log output look like? I had a few hiccups modifying a script into an automation, but I don’t see the pitfalls here. (I was doing a fetch and also I had to use the ID of a field rather than the name.)
Feb 16, 2022 08:03 AM
For the last try catch the salesChannel value looks like this:
{name: [channelName]}
The channel name is one of the options in the single select field. However, it also encountered an error so it cannot update. The error looks like this from what I’ve remembered:
{Error: "d"}
Feb 16, 2022 08:56 AM
Hmm, I really don’t see why the code wouldn’t work. As a last-ditch attempt, I’d replace the field name of “Sales Channel” with its ID? But if that were the problem, the very first table.updateRecordAsync would have failed as well.