Skip to main content

Hello,

I'm a new to the AirTable API and trying to automate adding records with data from another API.  I have this function:

	async function updateCrewRecords(data: CrewDetailsType[]) {
const crewBase = new Airtable({ apiKey: AT_API_KEY }).base('appxxx')
const table = cewBase('tblxxx')

const records = data.map((crew) => ({
fields: {
CrewID: crew.CrewID,
CompanyID: crew.CompanyID,
IsActive: crew.IsActive,
Position: crew.Position,
},
}))

try {
// const response = await table.create(records, { typecast: true })
const response = await table.update(records, {
typecast: true,
performUpsert: true,
fieldsToMergeOn: ['CrewID'],
})
} catch (e: any) {
const errorMsg = `updateCrewRecords(): ${e.message}`
console.log(e.statusCode, errorMsg)
// throw error(e.statusCode, e.message)
}
}

 The commented out table.create(records) works as expected, but the upsert doesn't.  The error I'm getting is:

422 updateCrewRecords(): Invalid request: parameter validation failed. Check your request data. 

I can't find any way to get any more specific information on what is going wrong.

Any help would be much appreciated!
Thanks,
Adam.

<grr> finally ask for help and then figure it out. 🙄

This works. 😮‍💨

const response = await table.update(records, {
typecast: true,
performUpsert: {
fieldsToMergeOn: :'CrewID'],
},
})

Reply