You are browsing the documentation for iTop 2.7 which is not the current version.

Consider browsing to iTop 3.1 documentation

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
LinkedSet attributes: the very standard syntax $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.
Known limitation: Calculated attribute 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:

  1. You have made a typo of the field code or that code does not exist on the class which has trigger that notification
  2. 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 an signature field, of type AttributeTemplateHTML 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)$

2_7_0/admin/placeholders.txt · Last modified: 2022/03/29 10:26 (external edit)
Back to top
Contact us