Send triggered email after submission is approved

I’m creating a website where people submit their films using a form. The films are then sent to a dashboard page where I “approve,” “review,” or “dismiss” them. If approved, I would like to add the person who submitted the film to my Wix Contacts List and send them an email.

I’m currently having trouble sending a triggered email after the film is approved. No email is sent and no new contact is created.

I borrowed from this Corvid Wix example for the approval page:
https://www.wix.com/corvid/example/quick-book-and-pending-appointments

I also borrowed from this Totally Codable example for the creating contact/ sending email:
https://codequeen.wixsite.com/email-download/the-code

And this Wix Article on triggered emails:
https://support.wix.com/en/article/corvid-tutorial-sending-a-triggered-email-to-contacts

Here is my code:

import wixCRM from 'wix-crm';
import wixData from 'wix-data';

//-------------Page Setup-------------//

$w.onReady(function () {
    $w("#pendingSubmissionsDataset").onReady(() => {
 if ($w("#pendingSubmissionsDataset").getTotalCount() === 0) {
            $w("#noPendingSubmissions").show();
            $w("#submissionsRepeater").hide();
        }
    });
});

//-------------Repeater Setup-------------//

export function submissionsRepeater_itemReady($item, itemData, index) {
    $item("#dismissButton").onClick(async () => {
        $item("#dismissButton").disable();
        $item("#approveButton").disable();
        $item("#reviewButton").disable();
 await dismissSubmission(itemData, index, $w);
    });

    $item("#approveButton").onClick(async () => {
        $item("#dismissButton").disable();
        $item("#approveButton").disable();
        $item("#reviewButton").disable();
 await approveSubmission(itemData, index);
    });

    $item("#reviewButton").onClick(async () => {
        $item("#dismissButton").disable();
        $item("#approveButton").disable();
        $item("#reviewButton").disable();
 await reviewSubmission(itemData, index);
    });
}

//-------------Submission Dismissal-------------//

async function dismissSubmission(pendingSubmission, index, $w) {
    pendingSubmission.status = "DISMISSED";
 await wixData.update("FirstFilmSubmission", pendingSubmission);
    refreshData();
}

//-------------Submission Approval-------------//

async function approveSubmission(pendingSubmission, index, $w) {
    pendingSubmission.status = "APPROVED";
 await wixData.update("FirstFilmSubmission", pendingSubmission);
    refreshData();  

    wixCRM.createContact({
 "firstName": $w('#firstNamePerson').text,
 "lastName" : $w('#lastNamePerson').text,
 "emails" : [$w("#email").text],
 "labels" : ["Film Approved"],
 "roleInFilm" : [$w("#rolePerson").text]
 })
  .then((contactId) => {
   wixCRM.emailContact('RypJxMz', contactId, {
 "variables": {
 "name" : $w('#firstNamePerson').text,
 "filmTitle": $w('#filmTitle').text
     }
    })
    .then(() => {
    })
    .catch((err) => {
    });
  });
}

//-------------Submission Review-------------//

async function reviewSubmission(pendingSubmission, index, $w) {
    pendingSubmission.status = "REVIEW";
 await wixData.update("FirstFilmSubmission", pendingSubmission);
    refreshData();
}

//-------------Page Update-------------//

function refreshData() {
    $w("#pendingSubmissionsDataset").refresh().then(() => {
 if ($w("#pendingSubmissionsDataset").getTotalCount() === 0) {
            $w("#noPendingSubmissions").show();
            $w("#submissionsRepeater").hide();
        }
    });
}

I’m new to coding - am I missing something?

My website: https://www.bayareafilmmakers-arthouse.com/
Dashboard Page: “Primary Approval Page”

Thank you!