Email Template

»
Human Resources

Performance Review Notification Email

An email template informing employees of their upcoming performance review and necessary preparation details.

Subject

Performance Review Notification

BODY
Dear &#123;&#123;to.fname&#125;&#125;,<br><br>We would like to inform you about your upcoming performance review scheduled for &#123;&#123;date&#125;&#125; at &#123;&#123;time&#125;&#125;. Please be prepared to discuss your accomplishments, challenges, and future goals.<br><br>Should you need any clarification, don&apos;t hesitate to contact the Human Resources Department.<br><br>Best regards,<br>&#123;&#123;signature&#125;&#125;
About this
Email Template

The goal of performance reviews is to provide employees with feedback about their work, identify areas of strength, and address any areas of improvement. This email template serves to inform employees about their upcoming performance review and the necessary preparations they need to undertake.

This template is significantly beneficial to all businesses that rely on periodic employee reviews, irrespective of the industry or the company's size. It's designed with a formal yet friendly tone that helps in fostering an environment of openness and performance-based discussions.

In conclusion, this comprehensive performance review notification template not only serves as a reminder but also assists the employees to prepare ahead for the review. It reinforces the positive aspects of an employee's performance and opens an opportunity to discuss future plans and improvements.

A short Guide to
Performance Review Notification Email
Show-Hide

Récupérez 1 heure par jour sur la gestion de vos emails.

var user = {}; var params = new URLSearchParams(window.location.search); var path = window.location.pathname; const userPictures = document.getElementsByClassName('user-picture'); const signupCTAs = document.getElementsByClassName('get-started'); const bookDemoCTAs = document.querySelectorAll('[href*="request-demo"]'); const isSignedIn = document.getElementsByClassName('is-user-state'); const isSignedInInline = document.getElementsByClassName('is-state-user-inline'); const upgradeCTAs = document.getElementsByClassName('button-pricing-plan'); const educationCTAs = document.getElementsByClassName('gmelius-university'); const plan = params.get('plan'); const canPay = params.get('canpay'); // Select buttons using provided CSS classes const btnsTrial = document.querySelectorAll('.button-trial'); const btnsUpgrade = document.querySelectorAll('.button-upgrade'); const btnsAccount = document.querySelectorAll('.button-account'); const btnsDowngrade = document.querySelectorAll('.button-downgrade'); const btnsUpgradeUser = document.querySelectorAll('.button-upgrade-user'); // Conditional logic based on URL params if (plan && typeof canPay !== 'undefined') { document.querySelector('.pricing-title').textContent = 'Our Plans & Pricing'; document.querySelector('.pricing-subtext').textContent = 'Contact sales@gmelius.com in case of questions'; history.replaceState(null, '', window.location.pathname); // Hide Trial Buttons btnsTrial.forEach(btn => { if (btn) btn.style.display = 'none'; }); // Display appropriate buttons based on params if (canPay === 'false') { switch (plan) { case 'enterprise': btnsDowngrade.forEach(btn => { btn.style.display = 'flex'; }); document.querySelector('.button-enterprise').style.display = 'none'; btnsAccount[2].style.display = 'flex' btnsAccount[2].href = 'https://app.gmelius.com/account' break; case 'pro': btnsDowngrade[0].style.display = 'flex' btnsAccount[1].style.display = 'flex' btnsAccount[1].href = 'https://app.gmelius.com/account' break; case 'growth': btnsUpgradeUser[1].style.display = 'flex' btnsAccount[0].style.display = 'flex' btnsAccount[0].href = 'https://app.gmelius.com/account' break; default: btnsUpgradeUser.forEach(btn => { btn.style.display = 'flex'; }); } } else { switch (plan) { case 'enterprise': btnsDowngrade.forEach(btn => { btn.style.display = 'flex'; }); document.querySelector('.button-enterprise').style.display = 'none'; btnsAccount[2].style.display = 'flex' break; case 'pro': btnsDowngrade[0].style.display = 'flex' btnsAccount[1].style.display = 'flex' break; case 'growth': btnsUpgrade[1].style.display = 'flex' btnsAccount[0].style.display = 'flex' break; default: btnsUpgrade.forEach(btn => { btn.style.display = 'flex'; }); } } } try { window.onload = function() { document.getElementById('dashboard-frame-app').src = 'https://app.gmelius.com/websiteProxy.html'; }; window.addEventListener('message', function (e) { if (e.origin === 'https://app.gmelius.com') { user = e.data; window.localStorage.setItem('user', JSON.stringify(user)); } }); if (!Object.keys(user).length && window.localStorage.getItem('user')) { user = JSON.parse(window.localStorage.getItem('user')); } if (!Object.keys(user).length && (params.has('ref') && (params.get('ref') === 'dashboard' || params.get('ref') === 'extension'))) { user.picture = 'https://cloud.gmelius.com/public/logos/gmelius-32.png'; window.localStorage.setItem('user', JSON.stringify(user)); } if (Object.keys(user).length) { if (userPictures.length > 0) { Array.from(userPictures).forEach(function(picture) { if (user.email) { picture.src = user.picture || `https://avatar.oxro.io/avatar.svg?name=${user.email.toUpperCase()}&length=1`; } else { picture.src = 'https://cloud.gmelius.com/public/images/avatar-astro.png' } picture.onerror = function () { this.style.display = 'none'; } }); } if (signupCTAs.length > 0) { Array.from(signupCTAs).forEach(function(cta) { //cta.style.display = 'none'; }); } if (isSignedIn.length > 0) { Array.from(isSignedIn).forEach(function(cta) { //cta.style.display = 'none'; }); } if (isSignedInInline.length > 0) { Array.from(isSignedInInline).forEach(function(cta) { //cta.style.display = 'inline'; }); } if (educationCTAs.length > 0) { document.body.classList.add('hasAnnouncement'); Array.from(educationCTAs).forEach(function(cta) { cta.style.display = 'block'; }); } if (upgradeCTAs.length > 0) { Array.from(upgradeCTAs).forEach(function(cta) { cta.classList.add('upgrade'); }); } } } catch (e) {} // Beamer var beamer_config = { product_id : 'CIJpSEcT13796', //DO NOT CHANGE: This is your product code on Beamer selector : '.beamer-widget', /*Optional: Id, class (or list of both) of the HTML element to use as a button*/ //display : 'right', /*Optional: Choose how to display the Beamer panel in your site*/ top: 10, /*Optional: Top position offset for the notification bubble*/ //right: -10, /*Optional: Right position offset for the notification bubble*/ //bottom: 0, /*Optional: Bottom position offset for the notification bubble*/ left: 30, /*Optional: Left position offset for the notification bubble*/ //button_position: 'bottom-right', /*Optional: Position for the notification button that shows up when the selector parameter is not set*/ //icon: 'bell_lines', /*Optional: Alternative icon to display in the notification button*/ //language: 'EN', /*Optional: Bring news in the language of choice*/ //filter: 'admin', /*Optional : Bring the news for a certain role as well as all the public news*/ //lazy: false, /*Optional : true if you want to manually start the script by calling Beamer.init()*/ //alert : true, /*Optional : false if you don't want to initialize the selector*/ //delay : 0, /*Optional : Delay (in milliseconds) before initializing Beamer*/ //embed : false, /*Optional : true if you want to embed and display the feed inside the element selected by the 'selector' parameter*/ //mobile : true, /*Optional : false if you don't want to initialize Beamer on mobile devices*/ //notification_prompt : 'sidebar', /*Optional : override the method selected to prompt users for permission to receive web push notifications*/ //callback : your_callback_function, /*Optional : Beamer will call this function, with the number of new features as a parameter, after the initialization*/ //onclick : your_onclick_function(url, openInNewWindow), /*Optional : Beamer will call this function when a user clicks on a link in one of your posts*/ //onopen : your_onopen_function, /*Optional : Beamer will call this function when opening the panel*/ //onclose : your_onclose_function, /*Optional : Beamer will call this function when closing the panel*/ //---------------Visitor Information--------------- //user_firstname : "firstname", /*Optional : Input your user firstname for better statistics*/ //user_lastname : "lastname", /*Optional : Input your user lastname for better statistics*/ user_email : user.email ? user.email : null, /*Optional : Input your user email for better statistics*/ //user_id : "user_id" /*Optional : Input your user ID for better statistics*/ }; document.addEventListener('DOMContentLoaded', function () { if (user && user.email) { $crisp.push(["set", "user:email", [user.email]]); } const talkToSalesBtn = document.getElementById('talk-to-sales'); const tryProBtn = document.getElementById('try-pro'); const downgradeToGrowthBtn = document.getElementById('downgrade-growth'); const downgradeToProBtn = document.getElementById('downgrade-pro'); // Wait until Crisp is fully loaded function waitForCrisp(callback, attempts = 0) { if (window.$crisp && window.$crisp.is && window.CRISP_WEBSITE_ID) { callback(); } else if (attempts < 10) { // retry up to 10 times (5 sec) setTimeout(() => waitForCrisp(callback, attempts + 1), 500); } else { console.error('Crisp SDK failed to load.'); } } function sendVisitorMessage(messageText) { $crisp.push(["set", "message:text", [messageText]]); } // Open Crisp chat and display messages function openChatAndShowMessages(text) { if (!$crisp.is("chat:visible")) { $crisp.push(["do", "chat:show"]); } if (!$crisp.is("chat:opened")) { $crisp.push(["do", "chat:open"]); } // Small delay ensures Crisp DOM readiness setTimeout(() => { sendVisitorMessage(text); }, 500); } // Button click handler talkToSalesBtn.addEventListener('click', function (event) { event.preventDefault(); waitForCrisp(() => openChatAndShowMessages("Hi, I'd like to talk to your Enterprise Sales Team. My company name is:")); }); tryProBtn.addEventListener('click', function (event) { event.preventDefault(); waitForCrisp(() => openChatAndShowMessages("Hi, I'd like to start a trial of Gmelius Pro. My email address is:")); }); downgradeToProBtn.addEventListener('click', function (event) { event.preventDefault(); waitForCrisp(() => openChatAndShowMessages("Hi, I'd like to downgrade my subscription to Gmelius Pro.")); }); downgradeToGrowthBtn.addEventListener('click', function (event) { event.preventDefault(); waitForCrisp(() => openChatAndShowMessages("Hi, I'd like to downgrade my subscription to Gmelius Growth.")); }); btnsUpgradeUser.forEach(button => { button.addEventListener('click', event => { event.preventDefault(); waitForCrisp(() => openChatAndShowMessages("Hi, I'd like to upgrade my team's subscription.")); }); }); }); // Custom logic for modals document.addEventListener("DOMContentLoaded", () => { const target = document.querySelector(".with-video"); const introVideo = document.querySelector(".intro-video"); if (!target || !introVideo) return; const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { // Parent is in view, show the video introVideo.style.display = "block"; } else { // Parent is out of view, hide the video introVideo.style.display = "none"; } }); }, { root: null, // use the viewport threshold: 0, // callback when any part of the element is visible } ); observer.observe(target); }); document.addEventListener("DOMContentLoaded", () => { const closeButton = document.querySelector(".modal-close"); if (!closeButton) return; closeButton.addEventListener("click", () => { const videoModal = document.querySelector(".video-in-modal"); const introVideo = document.querySelector(".intro-video"); if (videoModal) { videoModal.remove(); } if (introVideo) { introVideo.remove(); } }); }); -->