User Tools

Site Tools

Translations of this page:

This is an old revision of the document!

Notify on expiration

Notify on expiration
Get a notification when a date is about to be reached


This extension allow to trigger notification when an expiration date is about to be reached.

  • You can define various Expiration rules, for different usage. Targeted for Contract & Licence expiration, it can be used with any class having a date attribute.
  • You can set multiple rules for the same class with different term of notice, for example one '3 months ahead' and another 'one month before' the deadline.
  • Notification for a particular object reaching Expiration, unless configured differently, will occur only once.
  • Notification message is configurable as any standard trigger/action.
  • For advanced need, you can define the objects in scope of the notification with an OQL.


  • Expiration Notification occurs daily only.
  • It is not designed to handle time, only date.


iTop 2.3.0 or above

Revision history

Date Version Description
2019-01-10 1.0.0 First official version
2018-03-28 0.1.0 First release


Use the Standard installation process for this extension.


Once the new module has been installed, edit the configuration file config-itop.php and look for the following new section:

	'combodo-notify-on-expiration' => array (
		'time' => '03:00',
		'enabled' => true,
		'debug' => false,

The following settings are available to configure the module:

Parameter Type Description Default Value
time hour:minute Time of the day, when the process should start. 03:00
enable boolean Should the process run? true
debug boolean Should the CRON log be enrich with debug information? false

The Notification on Expiration is handled by the service cron.php once a day. Make sure this one is scheduled to run on your system. More information in the chapter about Background tasks.

To check the status of this service, use the command:

php webservices/cron.php --auth_user=admin --auth_pwd=admin --status_only=1

The task NotifyOnExpiration will not be listed here if the CRON has not run at least once since the extension has been installed.


Example: Setup a notification 20 days before a Licence expires

  • Create a Expiration Rule
  • Create a Trigger
  • Create a Notification

Expiration Rule

The extension brings a new Menu entry Expiration rules

To create a new one:

  • Give it any Name you like,
  • Define the Class on which the rule will be applied, a Class code is expected, for eg. CustomerContract
  • Give it a Status: Active to enable the cron to execute this Expiration rule in the Background task.
  • Choose an Applied option by filling the fields either in …option 1 (simple) or in …option 2 (advanced) fieldset:


  • Define the Date to check, which must be the code of a date attribute, not the label.
  • Term of notice is configurable and says when to trigger the notification, by specifying a number of days before the deadline,

Example: setting Class=Licence, Date to check=end_date and Term of notice=20 the resulting OQL will be:



  • Define the OQL scope with an OQL query returning the objects on which to apply the trigger. As soon as an OQL is entered, the advanced option is used, even if the simple one is also documented.

You can create as many Expiration Rule as you want, for Licence, Customer Contract and even multiple for the same class but with a different term of notice


  • You can check anytime which objects would be trigger if the Expiration Rule is run.


Create a Trigger using the extension added: Trigger (on expiration)

You may filter it further, with an OQL:

SELECT Licence WHERE perpetual='no'

If you have high volume of objects, it's more efficient to filter as much as possible in the Expiration Rule


Create a Notification, defining who should receive it and the body of the message
On top of the standard placeholders, this extension brings also:

Placeholder Purpose
$rule->name$ The name of the Expiration rule which has trigger this notification
$rule->description$ The Description of the Expiration rule which has trigger this notification
$rule->term_of_notice$ The Term of notice in days defined in the Expiration rule which has trigger this notification

Link the Notification to the above created Trigger.

extensions/combodo-notify-on-expiration.1548082170.txt.gz · Last modified: 2019/01/21 15:49 by vdumas