We are using Javascript on our website and trying to update a record in the Account module when someone updates their business details. Our code is as follows:
const updateZohoAccountForClientUser = tryCatchWrapper(
async (userId: string) => {
const user = await User.findById(userId);
if (!user) return;
const zohoAccountId = user?.zohoAccountId;
const zohoAccessToken = await generateAccessTokenFromRefreshTokenForZoho();
const url = ${zohoModuleUrl}/crm/v2/Accounts/upsert;
const requestBody = {
data: [
{
id: zohoAccountId,
Account_Name: user.businessName,
Business_Industry: user.businessIndustry,
I_am: user.businessRole,
Last_Name: user.lastName,
First_Name: user.firstName,
Email: user.email,
Phone: user.phone.startsWith("+1")
? user.phone.substring(2)
: user.phone,
Country: user.businessCountry,
Unit_no: user.businessUnitNumber,
Street: user.businessAddress,
City: user.businessCity,
Province: user.businessProvince,
Postal_Code: user.businessPostalCode,
Record_Image: getUrlForBrand({
businessName: user.businessName,
fileName: user.logoUrl ?? "",
}),
Account_Status: user.isEmploymentVerified
? "Verified"
: user.employmentDocs.length > 0
? "Review Required"
: "Verification Required",
Estimated_amount_of_checks_per_year: user.reportsRequired,
},
],
trigger: ["approval", "workflow", "blueprint"],
duplicate_check_fields: ["id"],
};
const { data } = await axios({
url,
method: "post",
data: JSON.stringify(requestBody),
headers: {
Authorization: Zoho-oauthtoken ${zohoAccessToken},
},
});
console.log(JSON.stringify(data));
return data;
}
);
We are getting a success result in our log
{"data":[{"code":"SUCCESS","action":"update","details":{"Modified_Time":"2023-12-15T10:39:12-08:00","Modified_By":{"name":"ME","id":"IDNUMBER"},"Created_Time":"2023-12-14T22:54:25-08:00","id":"IDNUMBER","Created_By":{"name":"ME","id":"IDNUMBER"}},"message":"record updated","status":"success"}]}
(I have edited my name/id numbers in the success message)
The problem is, it is updating the current record, however it is also creating a duplicate of the record Account name (but no other account details such as first name, etc). Only the account name is being populated in the new record.
Have spent a considerable amount of time trying to debug this - any help would be greatly appreciated!
Thank you