{"id":8928,"date":"2026-08-31T10:18:32","date_gmt":"2026-08-31T10:18:32","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=8928"},"modified":"2026-08-31T12:03:55","modified_gmt":"2026-08-31T12:03:55","slug":"create-a-custom-notification-template-in-totara-with-an-example","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/","title":{"rendered":"Create a Custom Notification Template in Totara with an Example"},"content":{"rendered":"<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/studysection.com\/blog\/how-to-perform-the-group-concatenation-in-totara\/\" target=\"_blank\" rel=\"noopener\">Totara<\/a> allows developers to create custom notification templates programmatically, enabling automation of communications for organization-specific business processes not covered by standard notifications. A custom notification template can be developed within a local plugin or custom extension and triggered by specific events, scheduled tasks, or workflow actions.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As part of a recent customization, we implemented a notification workflow for suspended users. The requirement was to automatically remove a user from any event enrollments when their account status changed to suspended. Once the enrollment cancellation process was complete, a custom notification was sent to the user&#8217;s manager or supervisor. Now, with this example, we show you how to create a custom notification template through code. Follow these simple steps:<\/span><\/p>\n<p><b>Step 1: Choose the Plugin<\/b><\/p>\n<p><span style=\"font-weight: 400;\">First, identify the plugin for which you want to create the notification. In our case, we are creating a notification template for the <\/span><b>Sequence<\/b><span style=\"font-weight: 400;\"> activity plugin.<\/span><\/p>\n<p><b>Step 2: Open the Plugin Folder<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Navigate to the plugin directory inside the <\/span><b>mod<\/b> <span style=\"font-weight: 400;\">folder:<\/span><\/p>\n<p><b>mod\/sequence<\/b><\/p>\n<p><b>Step 3: Locate the Upgrade File<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Inside the plugin folder, open the following file:<\/span><\/p>\n<p><b>mod\/sequence\/db\/upgrade.php<\/b><\/p>\n<p><span style=\"font-weight: 400;\">This file is used to run database and configuration changes whenever the plugin is upgraded.<\/span><\/p>\n<p><b>Step 4: Add the Notification Template Code<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Add the code that creates the notification template inside the appropriate upgrade step in <\/span><b>upgrade.php<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>Step 5: Update the Plugin Version<\/b><\/p>\n<p><span style=\"font-weight: 400;\">After adding the code, increase the plugin version number in the <\/span><b>version.php<\/b><span style=\"font-weight: 400;\"> file.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The version number used in the upgrade condition should match the new version number that you set in <\/span><b>version.php<\/b><b>.<\/b><\/p>\n<p><b>Step 6: Upgrade the<a href=\"https:\/\/blog.webnersolutions.com\/types-of-plugins-in-moodle-and-totara-when-to-create-which-one\/\" target=\"_blank\" rel=\"noopener\"> Plugin<\/a><\/b><\/p>\n<p><span style=\"font-weight: 400;\">Once the version is updated, run the Totara upgrade process. During the upgrade, the code in <\/span><b>upgrade.php<\/b><span style=\"font-weight: 400;\"> will execute automatically and create the new notification template in the database.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This means the notification template is installed automatically as part of the plugin upgrade, without requiring any manual database changes. The example below shows how we created a custom notification template during a plugin upgrade. This code runs during a plugin upgrade and checks whether the <\/span><b>Suspension Cancellation<\/b><span style=\"font-weight: 400;\"> notification template already exists. If it does not exist, a new template is created with its title, message content, and notification settings for managers and hotel staff.\u00a0<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">if ($oldversion &lt; 2026061600) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$SuspensionCancellationTemplate = $DB-&gt;get_record(&#8216;sequence_notification_tpl&#8217;, array(&#8216;reference&#8217; =&gt; &#8216;suspension_cancellation&#8217;));<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transaction = $DB-&gt;start_delegated_transaction();<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(empty($SuspensionCancellationTemplate)){<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation = new stdClass();<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;status = 1;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;reference = &#8216;suspension_cancellation&#8217;;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;title = get_string(&#8216;setting:SuspensionCancellationTitle&#8217;,&#8217;sequence&#8217;);<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;body = text_to_html(get_string(&#8216;setting:suspension_cancellationmessage&#8217;, &#8216;sequence&#8217;));<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;ccmanager = 1;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;managerprefix = text_to_html(get_string(&#8216;setting:suspension_cancellation_managermessage&#8217;, &#8216;sequence&#8217;));<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;hotelstaffcopy = 1;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tpl_suspension_cancellation-&gt;hotelstaffprefix = text_to_html(get_string(&#8216;setting:suspension_cancellation_hotelstaffmessage&#8217;, &#8216;sequence&#8217;));<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$DB-&gt;insert_record(&#8216;sequence_notification_tpl&#8217;, $tpl_suspension_cancellation);<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transaction-&gt;allow_commit();<\/span><\/p>\n<p><span style=\"font-weight: 400;\">}<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Now, the next code, which we are going to mention, is used to make the template available in the Totara UI. Once this is done, the template will appear in the notification templates list, where administrators can easily manage it. From the UI, we can edit the notification content and configure recipients and other settings as well. This means future changes in the template can be made from the UI without modifying the code again. Please check the example code.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This change is made in the specified file. At the top of the file, alongside the existing constants, we create a new constant for our notification template. This constant acts as a unique identifier for the notification.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Later in the code, the same constant is used to determine when the notification should be sent. When the required condition is met, the system uses this identifier to locate and trigger the correct notification template.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><b>mod\/sequence\/notification\/lib.php<\/b><\/p>\n<p><b>\/\/constant<\/b><\/p>\n<p><b>define(&#8216;MDL_SQ_CONDITION_SUSPENSION_CANCELLATION&#8217;, 001);<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">if (isset($templates[&#8216;suspension_cancellation&#8217;])) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$template = $templates[&#8216;suspension_cancellation&#8217;];<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation = new sequence_notification($defaults, false);<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;title = $template-&gt;title;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;body = $template-&gt;body;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;managerprefix = $template-&gt;managerprefix;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;conditiontype = MDL_SQ_CONDITION_SUSPENSION_CANCELLATION;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;ccmanager = $template-&gt;ccmanager;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;status = $template-&gt;status;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;templateid = $template-&gt;id;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;hotelstaffcopy = $template-&gt;hotelstaffcopy;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$suspension_cancellation-&gt;hotelstaffprefix = $template-&gt;hotelstaffprefix;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$notifications[MDL_SQ_CONDITION_SUSPENSION_CANCELLATION] = $suspension_cancellation;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">} else {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">$missingtemplates[] = &#8216;suspensioncancellation&#8217;;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">}<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Now, from the UI, navigate to Site Administration and then choose Notifications, and in the list of all notifications, you can find your created notification template as well.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Totara allows developers to create custom notification templates programmatically, enabling automation of communications for organization-specific business processes not covered by<\/p>\n","protected":false},"author":1,"featured_media":8930,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[912],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Create a Custom Notification Template in Totara with an Example<\/title>\n<meta name=\"description\" content=\"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Custom Notification Template in Totara with an Example\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-31T10:18:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T12:03:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2026\/08\/Copy-of-Copy-of-Copy-of-How-to-Create-a-Custom-Report-Builder-Source-in-Totara-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"788\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Create a Custom Notification Template in Totara with an Example\",\"datePublished\":\"2026-08-31T10:18:32+00:00\",\"dateModified\":\"2026-08-31T12:03:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\"},\"wordCount\":781,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"articleSection\":[\"Web Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\",\"url\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\",\"name\":\"Create a Custom Notification Template in Totara with an Example\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2026-08-31T10:18:32+00:00\",\"dateModified\":\"2026-08-31T12:03:55+00:00\",\"description\":\"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Custom Notification Template in Totara with an Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a Custom Notification Template in Totara with an Example","description":"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/","og_locale":"en_US","og_type":"article","og_title":"Create a Custom Notification Template in Totara with an Example","og_description":"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.","og_url":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2026-08-31T10:18:32+00:00","article_modified_time":"2026-08-31T12:03:55+00:00","og_image":[{"width":940,"height":788,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2026\/08\/Copy-of-Copy-of-Copy-of-How-to-Create-a-Custom-Report-Builder-Source-in-Totara-3.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Create a Custom Notification Template in Totara with an Example","datePublished":"2026-08-31T10:18:32+00:00","dateModified":"2026-08-31T12:03:55+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/"},"wordCount":781,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"articleSection":["Web Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/","url":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/","name":"Create a Custom Notification Template in Totara with an Example","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2026-08-31T10:18:32+00:00","dateModified":"2026-08-31T12:03:55+00:00","description":"Learn how to create a custom notification template in Totara with this step-by-step guide, including code examples and UI configuration.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/create-a-custom-notification-template-in-totara-with-an-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create a Custom Notification Template in Totara with an Example"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":3,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8928"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=8928"}],"version-history":[{"count":2,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8928\/revisions"}],"predecessor-version":[{"id":8931,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8928\/revisions\/8931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/8930"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=8928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=8928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=8928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}