Notification placeholders
The “Subject” and “Body” parts of an email Notification support placeholders:
Syntax | Example on a Ticket notification |
$this->attribute$ |
$this->ref$ is replaced by the Ticket reference |
$this->external_key->attribute$ |
$this->caller_id->email$ is replaced by the email of the caller of the Ticket |
$this->representation(attribute)$ |
$this->html(log)$ is replaced by the public log in html format |
$CONSTANT$ |
$APP_URL$ is replaced by the URL of the iTop application |
$this->function()$ |
$this->hyperlink(portal)$ is replaced by the url to the Ticket on the iTop portal |
Those 5 cases are detailed below:
Additional placeholders can be added by Extensions, such as Approval… Check Extension documentation for more details.
Attribute placeholders
Function | Description | Supported types of attributes |
---|---|---|
$this->attribute$ |
The plain text representation of the value of the attribute | any |
$this->id$ |
The id of the current object (there is no such attribute at that time) | |
$current_contact->attribute$ |
the person who did the change which activated the trigger |
$this->attribute$
returns a list of names separated
by a new line character which are replaced by blank in HTML, so use instead
$this->html(functionalcis_list)$
to display the
bullet list of CIs linked to a User Request.friendlyname
is not accurate if one of its
underlying field is modified. The workaround is to rebuild the
friendlyname within the notification itself.Extended syntax
The extended syntax provides a quick means to retrieve data from related objects, like in the following examples:
-
$this->approver_id->phone$
-
$this->approver_id->org_id->code$
-
$this->approver_id->org_id->hyperlink()$
-
$this->parent_request_id->hyperlink(portal)$
Every built-in functions and attribute representations are
available after the last ->
).
Attribute representations
Function | Description | Supported types of attributes |
---|---|---|
$this->html(attribute)$ |
The HTML representation of the value of the attribute | any |
$this->label(attribute)$ |
The localized representation of the value of the attribute. The language is the language of the user currently logged in. | any (only make sense for AttributeEnum) |
$this->head(attribute)$ |
Plain text of the latest entry in the case log | AttributeCaseLog |
$this->head_html(attribute)$ |
HTML formatted representation of
the latest entry, whereas
$this->html(attribute)$ returns an HTML formatted representation of
the whole case log (you can apply your own CSS styling to make it
beautiful). |
AttributeCaseLog |
New in iTop 2.4:
$this->raw(attribute)$ |
SQL formatted representation of the date(time),
whereas $this->(attribute)$ returns the value
formatted regarding the configuration parameter. |
AttributeDatetime |
Fixed placeholders
Placeholder | Meaning |
---|---|
$APP_URL$ |
URL of the iTop application. |
$MODULES_URL$ |
Root URL of the modules (e.g.
$APP_URL$/env-production ). |
Built-in function placeholders
Placeholder | Meaning |
---|---|
$this->name()$ |
The name of the current object |
$this->hyperlink()$ |
The url to access the current object in iTop console |
$this->hyperlink(portal)$ |
The url to access the current object in the iTop portal |
$this->hyperlink(itop-portal-view)$ |
To open the current object in iTop portal in read-only mode |
$this->hyperlink(itop-portal-edit)$ |
To open the current object in iTop portal in modification mode |
Warning, for custom portals you'll need to have created an URLMaker class : see urlmaker
Example: UserRequest
Assuming that a notification is triggered when assigning a User Request, the body of the message could be:
Dear $this->html(agent_id), The ticket $this->ref$ has been assigned to you. More information about this ticket Title: $this->title$ Description: $this->description$ Public log: $this->head_html(public_log)$ Impacted CIs: $this->html(functionalcis_list)$ Click here to display the details of the ticket: $this->hyperlink()$ (authentication required)
Questions & Answers
Question: Why my placeholder is not replaced by the real
value in the sent email?
Answers:
-
You have made a typo of the field code or that code does not exist on the class which has trigger that notification
-
Check the source code of your notification body (CKEditor propose a <source> button), if an html tag is inside the placeholder, this breaks the matching mechanism and the text is not replaced by the value.
Question: Can I add automatically a team signature to
UserRequest email notification?
Answer:
-
customize the
Team
class by adding ansignature
field, of typeAttributeTemplateHTML
if you want to make it nice with logo for eg. -
then add
$this->team_id->signature$
at the end of the body
Question: Can I send in my notification the
id
of the current object?
Answer: Though there is no 'id' attribute', the placeholder
$this->id$
is available to represent the iTop
internal identifier.
Question: If I have created multiple portals, can I send
a hyperlink to a specific portal?
Answer: you can point to any portal replacing portal
by the id
of your new portal.
Example $this->hyperlink(partner-portal)$