I’m using triggeredEmails.emailClient.sendEmail()
in a .jsw
backend file. My site is on a Premium plan and published. I’ve confirmed that my template ID (UlEvmRi
) is correct and variables are matching. But every time I call the function, it returns “Unable to handle the request” — even though the code is correct and previously worked in preview/testing. Please confirm that my triggered email feature is active and my template ID is properly linked on Wix’s backend.
Hi, @Chris_Kelly !!
Your code might still work even with some fixes, but since .jsw
files are now deprecated , this could be a good opportunity to rewrite it using the new
.web.js
format. Also, there’s a newer version of triggeredEmails
available, so you might want to consider switching to that as well. I’ve included the relevant references for you below.
Lastly, here’s a simple explanation of how to do it. That said, the steps are almost the same as when using .jsw
files, so there’s no need to worry. First, add a “Web Module” to your backend, and create a file like sample.web.js
. Then, write code like the example below (taken from the reference) inside that file.
import { Permissions, webMethod } from "wix-web-module";
import { triggeredEmails } from "wix-crm-backend";
export const myEmailContactFunction = webMethod(
Permissions.Anyone,
(emailId, contactId) => {
return triggeredEmails
.emailContact(emailId, contactId)
.then(() => {
console.log("Email was sent to contact");
})
.catch((error) => {
console.error(error);
});
},
);
After that, just import and use the .web.js
file on the frontend the same way you used to with .jsw
.
I don’t think it’s a good idea to hardcode values like emailId
or contactId
directly in the frontend code, so you may need to implement your own security measures to handle that appropriately.