siteMember to emailContact help

Hi guys, i have been working on a project on and off now for the last 3 years, last time i set everything up all the programming was completed on the site, it was the case of just setting up mobile optimisation and seo, however since logging back in to make some more improvements, the code no longer works, it seems wix has changed everything again, a (tradesperson site member) was able to respond to a job post made by a contact, and email them about the job via a triggered email, now this no longer works, ive used the wix/velo api snippets but cant seem to get it back working, it seems the tradesperson siteMember doesn’t have the necessary permissions to query the contacts and send a triggered email, can someone give me a working example code please what i need to do thanks?

this was the old code that used to work, frontend code = 

import wixLocation from 'wix-location';
import wixUsers from 'wix-users';
import wixData from 'wix-data';
import { sendEmail } from 'backend/emailJobPosts';
import { updateClicks } from 'backend/clicks';

$w.onReady(() => {

    $w("#dynamicDataset").onReady(() => {
        let userId = $w('#idFieldText').text;
        var item;
        var currentItem = $w("#dynamicDataset").getCurrentItem();
        $w("#textTitle").text = "Send a message to - " + currentItem.firstName;
        //added by snshah, to send email after applicants successfully applied for the job.
        item = $w("#dynamicDataset").getCurrentItem();

        
        $w("#dataset1").onAfterSave(() => {

            
            updateClicks(item)
            .catch(error => {
                    console.log(error);
                    $w("#error").show();
                    $w("#error").text = "There was an Error sending message! please try again later! " + error;
                });

        

            //let contactId = $w("#idFieldText").text;
            let jobPosterFirstName = currentItem.firstName;
            //let contactId = currentItem._id;
            let emails = $w("#JobPosterEmail").text;
            let jobPostersJob = $w("#jobPostersJob").text;
            let contactNumber = $w("#contactMobileNumber").text;
            let jobPostersHomeNumber = $w("#jobPostersHomeNumber").text;
            let jobLocation = $w('#jobLocation').text;
            let jobDescription = $w('#jobPosterMessage').text;
            let jobId = $w('#jobId').text;
            let lastName = $w('#lastName').text;

            let messageBack = $w("#messageTextBox").value;
            let companyName = $w("#traderName").value;
            let fullName = $w("#traderFullName").text;
            let traderEmail = $w("#traderEmailAddress").value;
            let traderContactNumber = $w("#traderContactNumber").value;
           

            $w("#postingMailTo").show();
            $w("#postingMailTo").text = "Posting message to " + jobPosterFirstName;

            sendEmail(emails, fullName, jobPostersJob, jobDescription, contactNumber, jobPostersHomeNumber,
             jobLocation, companyName, messageBack, lastName, jobId, jobPosterFirstName, traderEmail, traderContactNumber)
                .then(sendEmailStat => {
                    //$w("#successMessage").show();
                    $w("#successMessage").text = 'Email Status is  : ' + sendEmailStat;
                    console.log(sendEmailStat);
                })
                .catch(error => {
                    console.log(error);
                    $w("#error").show();
                    $w("#error").text = "There was an Error sending message! please try again later! " + error;
                });

        });

    });
})

backend code =


// Filename: backend/backendEmail.jsw (web modules need to have a .jsw extension)
import wixCrmBackend from 'wix-crm-backend';

export function sendEmail(emails, fullName, jobPostersJob, jobDescription, contactNumber, jobPostersHomeNumber,
             jobLocation, companyName, messageBack, lastName, jobId, jobPosterFirstName, traderEmail, traderContactNumber) {
    return wixCrmBackend.createContact({
            "emails": [emails]
        })
        .then((contactId) => {
            return wixCrmBackend.emailContact("SFgGQfn", contactId, {
                variables: {
                    "email": emails,
                    "fullName": fullName,
                    "jobPostersJob": jobPostersJob,
                    "jobDescription": jobDescription,
                    "contactNumber": contactNumber,
                    "jobPostersHomeNumber": jobPostersHomeNumber,
                    "jobLocation": jobLocation,
                    "companyName": companyName,
                    "messageBack": messageBack,
                    "lastName": lastName,
                    "jobId": jobId,
                    "jobPosterFirstName": jobPosterFirstName,
                    "traderEmail": traderEmail,
                    "traderContactNumber": traderContactNumber,
                }
            })
            .then(() => {
                return "Email Sent Successfully" + contactId;
            })
            .catch((err) => {
                return "Failed to send Email to recruiter due to error: " + err;
            });
        });
}

in the codes above the tradesperson was creating a contact based on a persons email address of a job post they posted into a database, with the data fetched by a dataset displaying the email text value, however instead of the email being triggered to the person who posted the job it was being sent to the trades person only who was enquiring about the job, basically the tradesperson has the job posters email being sent as an additional field in his/hers contact information, so the tradesperson now has 2 emails, 1 being his own and the other being the newly created email of the person who posted the job which makes no sense, this code used to create a separate contact of the person who made a job post then send the triggered email to them. this no longer works :frowning: