Update Message



3rd Party (Commercial)

EE Version Support

  • ExpressionEngine 1.x


If an item is crossed out, it might be untested, not applicable or incompatible. Contact the developer to be sure.

  • Updater
  • Multi Site Manager
  • Stand Alone Entry Form
  • Low Variables
  • Content Elements
  • Better Workflow
  • Matrix
  • Grid
  • Webservice
  • Publisher


  • jQuery for the Control Panel

Add-On Type(s)



Update Message extension sends email notifications when an entry is updated, created or deleted only if entry meets certain criteria (weblog and category or status or author id) and allows very flexible forming of entry’s URL.

There are already at least six add-ons which send email notification when an entry is created, updated or deleted:

1) UpdateMail
2) Entry Update Notification
3) NSM Publish Plus
4) Snitch
5) Snitch Member Groups
6) Entry Mailing

No of these add-ons fitted my purposes since I need

1) to specify which entries email notifications should inform about; that is I need to specify that email notification should be sent in case an entry is posted into certain weblog or category or has certain status or is authored by certain member.

2) to be able very flexibly form URLs - as flexibly as in Entry Crumblink extension.

To meet these requirements I created Update Message extension which sends email notifications when entry is updated, created or deleted only if entry meets certain criteria (weblog and category or status or author id) and allows very flexible forming of entry’s URL.

Flexibility in forming entry’s URL is achieved using special URL templates for each weblog.

Email notifications are being sent to addresses specified in email lists of Mailing List module. If you need to specify that email notification should be sent to entry author or to site admin and do not want to hardcode their email adresses,  use respectively these pseudo-emails: author@updatemsg.ee and siteadmin@updatemsg.ee.


1) action - outputs “created” or “updated” or “deleted”;
2) weblog_url - outputs weblog URL as defined in CP Home > Admin >  Weblog Administration >  Weblog Management >  Edit Weblog Preferences
3) url_title
4) url - outputs result of parsing URL template in case URL template is not empty or otherwise - a concatenation of the values of the variables “weblog_url” and “url_title”;
5) entry_id
6) title
7) status
8) categories - outputs comma delimited list of categories into which entry is submitted;
9) screen_name - outputs screen name of user who performed the action;
10) email - outputs email of user who performed the action;
11) weblog_id
12) weblog_title

Conditionals are supported for each of these variables.


1) {site_id}
2) {site_url}
3) {site_index}
4) {homepage}
5) {weblog_id}
6) {weblog_short_name}
7) {weblog_url} - weblog URL as defined in weblog preferences
8) {entry_id}
9) {url_title}
10) {categories_number}
11) {category_levels_number}

Templates support huge number of variables of the types outlined below (level0 is the highest level of categories, level1 is the level of subcategories of highest level, etc.; category0 is the first category of certain level, category1 is the second category, etc.):

11) {level0_category0_cat_id}, {level0_category1_cat_id}, {level0_category2_cat_id} ...
{level1_category0_cat_id}, {level1_category1_cat_id}, {level1_category2_cat_id} ...

12) {level0_category0_parent_id}, {level0_category1_parent_id}, {level0_category2_parent_id} ... {level1_category0_parent_id}, {level1_category1_parent_id}, {level1_category2_parent_id} ... {level99_category99_parent_id}.

13) {level0_category0_group_id}, {level0_category1_group_id}, {level0_category2_group_id} ... {level1_category0_group_id}, {level1_category1_group_id}, {level1_category2_group_id} ... {level99_category99_group_id}.

14) {level0_category0_cat_url_title}, {level0_category1_cat_url_title}, {level0_category2_cat_url_title} ... {level1_category0_cat_url_title}, {level1_category1_cat_url_title}, {level1_category2_cat_url_title} ... {level99_category99_cat_url_title}.

15) {level0_category0_subcats_number}, {level0_category1_subcats_number}, {level0_category2_subcats_number} ... {level1_category0_subcats_number}, {level1_category1_subcats_number}, {level1_category2_subcats_number} ... {level99_category99_subcats_number}.


1) {single_field} variable can have following prarameters:
1) field
2) entry_id
3) weblog
4) url_title
5) category - category id
6) sort - “asc” or “desc”
7) format - field format (e.g. “none”, “raw”)

This variable can be used to output the vavue of some custom field. Parameters do not support pipe character and “not”.

2) {entries_number} variable can have following prarameters:
1) weblog
2) category
3) url_title
4) status
5) entry_id
6) show_expired

This variable can be used to output number of entries posted into certain weblog or category. Parameters do not support pipe character and “not”.

3) {php} variable which can have following parameters:
1) string - string to be run through PHP function
2) function - PHP function name
3) par1 - first argument of PHP function
4) par2 - second argument of PHP function
5) par3 - third argument of PHP function
6) par4 - fourth argument of PHP function
7) par5 - fifth argument of PHP function

Names of PHP functions which can be used as values of “function” parameter are:
addcslashes, bin2hex, chop, chr, chunk_split, convert_cyr_string, convert_uudecode, convert_uuencode, count_chars, crc32, crypt, echo, explode, get_html_translation_table, hebrev, hebrevc, html_entity_decode, htmlentities, htmlspecialchars_decode, htmlspecialchars, join, levenshtein, localeconv, ltrim, md5_file, md5, metaphone, money_format, nl_langinfo, nl2br, number_format, ord, parse_str, print, printf, quoted_printable_decode, quotemeta, rtrim, setlocale, sha1_file, sha1, similar_text, soundex, sprintf, sscanf, str_ireplace, str_pad, str_repeat, str_replace, str_rot13, str_shuffle, str_split, str_word_count, strcasecmp, strchr, strcmp, strcoll, strcspn, strip_tags, stripcslashes, stripos, stripslashes, stristr, strlen, strnatcasecmp, strnatcmp, strncasecmp, strncmp, strpbrk, strpos, strrchr, strrev, strripos, strrpos, strspn, strstr, strtok, strtolower, strtoupper, strtr, substr_compare, substr_count, substr_replace, substr, trim, ucfirst, ucwords, vfprintf, vprintf, vsprintf, wordwrap.

Also the value of “function” parameter can be “parseint”; it is custom PHP function which behaves as Javascript “parseInt” function.

Single variables having parameters are parsed after single variables which do not have parameters; that means that you can use single variables without parameters as the values of parameters.


Here is URL template for one of my weblogs:


Here is more complicated URL template:

{if level0_category0_cat_id == "170" OR level0_category0_cat_id == "175" OR level0_category0_cat_id == "176" OR level0_category0_cat_id == "177"}{homepage}/technical/entry/{url_title}/{/if} 

Another quite complicated URL template example:

{homepage}/ebook/general_introduction/{level1_category0_cat_url_title}/{if "{entries_number weblog="ebook_generalintro" category="{level1_category0_cat_id}"}" > 1}{url_title}/{/if} 

Update Message Links

Hooks Used

If the add-on is an extension, and ties into ExpressionEngine's core files, it will use ExpressionEngine hooks. We are listing any hooks the add-on uses for developers to have an easier time locating other add-ons that they can reference for their own work.

  1. delete_entries_start
  2. delete_entries_loop
  3. submit_new_entry_end
  4. show_full_control_panel_end

This entry was created January 4, 2010, 6:23 am.
This entry was last updated August 27, 2011, 1:27 am.

Disclaimer: Information about ExpressionEngine add-ons is provided as a service to you, the user, and every member of the ExpressionEngine community. devot:ee is not responsible if you hose, mangle, wreck, or otherwise destroy your EE website by installing an add-on that you found out about at this site, regardless of its rating, Favorites status, commercial or free status, or general popularity. Caveat EEmptor!

Returns: devot:ee has a 30-day return policy on all commercial add-ons sold through devot-ee.com. If you need to return an add-on, do not go to the developer or the developer's site, but rather visit our returns page at https://devot-ee.com/returns to initiate your return. If you have questions, email support@devot-ee.com.

1 Review:

Alex Roper 01.08.11

Alex Roper
Rating - {addon_rating_average}

This add-on is amazing flexibility. I was able to easily send email notifications to authors or admins depending on what the entries status had changed to, AND each message customized the way I needed. No other add-on offered this many options. Also the developer’s support is top notch!