Difference between revisions of "Itop 3.2 Mail Notifications"

From Notes_Wiki
 
(69 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Main Page|Home]] > [[Ubuntu]] > [[Ubuntu 22.04]] > [[Ubuntu 22.04 Itop 3.2 by Combodo]] > [[itop 3.2 Mail Notifications SMTP setup]]
[[Main Page|Home]] > [[Ubuntu]] > [[Ubuntu 22.04]] > [[Ubuntu 22.04 Itop 3.2 by Combodo]] > [[itop 3.2 Mail Notifications]]


== SMTP configuration ==
== Triggers ==


* login to Itop console as admin user or users who have admin privileges.
Triggers define when notifications have to be sent. Example: when a ticket reaches the state “assigned”.


* Go to Configuration > General configuration
=== Create Triggers ===


* Find the smtp field in the file and the following entries
* Go to '''Configuration > Notifications > Triggers'''


<pre>
* The below are the Default triggers:
'email_default_sender_address' => '<mail-id>',
 
'email_transport' => 'SMTP',
# Person mentioned on Ticket
'email_transport_smtp.encryption' => 'tls',
# Person mentioned on User
'email_transport_smtp.host' => '<smtp-host>',
 
'email_transport_smtp.password' => '<password>',
* In the right corner, click on '''plus''' icon to create a new trigger
'email_transport_smtp.port' => '<port-number>',
 
'email_transport_smtp.username' => '<username>',
=== New triggers ===
 
==== Trigger when a Request is assigned ====
 
'''Trigger (on entering a state)'''
'''Description''':  Trigger when a Request is assigned
'''Target class''':  User Request
'''State''': assigned
'''Subscription policy''': Allow complete unsubscription
 
==== Trigger when a Request is closed ====
 
'''Trigger (on entering a state)'''
'''Description''':  Trigger when a Request is closed
'''Target class''':  User Request
'''State''': closed
'''Subscription policy''': Allow complete unsubscription
 
==== Trigger when a Request is created ====
 
'''Trigger (on object creation)'''
'''Description''':  Trigger when a Request is created
'''Target class''':  User Request
'''Subscription policy''': Allow complete unsubscription
 
==== Trigger when a Request is resolved ====
 
'''Trigger (on entering a state)'''
'''Description''':  Trigger when a Request is resolved
'''Target class''':  User Request
'''State''': resolved
'''Subscription policy''': Allow complete unsubscription
 
==== Trigger when log update from the portal ====
 
'''Trigger (when updated from the portal)'''
'''Description''': Trigger when log update from the portal
'''Target class''': User Request
'''Subscription policy''': Allow complete unsubscription
 
=== Download '''Send updates by email''' extension ===
 
This extension allows to send an email when updating the case log (either the public log or private log) of a Ticket. Email reply works with any type of Ticket.
 
* '''Go to iTop Hub > Get extensions from iTop Hub'''
 
'''NOTE: We need to register our iTop instance to download the extension'''
 
* Give the username and password
 
* Search for the extension
 
* On the extension page, on the right side, click on '''shop kart''' icon to download the extension
 
* follow the on-screen steps to install the extension


* click on apply to save the changes
* once installed, we can find the extension in the following path:


== Testing the SMTP configuration ==
'''iTop Hub > Deployed extensions'''


* Go to Configuration > Notifications
* The extension comes with the following trigger:


* click on the link '''email.test.php'''
# User Request public log update


* after opening the link, you should see green color text which says:
* create another trigger for private log update


* User Request private log update
<pre>
<pre>
Success:PHP settings are ok to proceed with a test of the email
Description: User Request private log update
Target class:  User Request
Context: Console
Log attribute code:  private_log
</pre>
</pre>


* In the '''Test recipient''' section, fill the '''To''' field. '''From''' field should be filled by default.
Reference: https://www.itophub.io/wiki/page?id=extensions:installation
 
== Email Actions ==
 
Actions define what will be done. In the current version of iTop, the only available kind of action consist in sending an email.


* Click '''Next'''  
* Go to '''Configuration > Notifications > Email actions'''


* The email is sent successfully. you should see green color text which says:
* In the right corner, click on '''plus''' icon to create a new action


<pre>
=== New Mail actions ===
Success:The email has been sent, check your inbox for the incoming mail...
 
</pre>
==== Notification to the agent when assigned ====
 
* This mail action sends the mail when a user is assigned to a ticket (user request).
* '''This mail goes to the following:'''
# The agent who is assigned
# The caller who raised the request
# The persons who are included in the '''<mail-id>''' tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''': Notification to the agent when assigned
'''Status''': In production
'''Subject''': The ticket $this->ref$ has been assigned to this agent
'''Body''':  
The ticket $this->name()$ has been assigned to the agent: $this->agent_id >friendlyname$
Title: $this->title$
Description: $this->description$
'''Related Triggers''': Trigger when a Request is assigned
'''From (email)''': <mail-id>
'''Ignore the Notify flag''': Yes
'''To''': SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
'''Cc''':
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
==== Notification to the agent when closed ====
 
* This mail action sends the mail when the ticket (user request) is closed
* '''This mail goes to the following:'''
# The agent who is assigned
# The caller who raised the request
# The persons who are included in the '''<mail-id>''' tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''':  Notification to the Agent when Closed
'''Status''': In production
'''Subject''':  The ticket $this->ref$ has been Closed.
'''Body''':
The ticket $this->name()$ has been Closed.
Title: $this->title$
Description: $this->description$
'''Related Triggers''': Trigger when a Request is closed
'''From (email)''': <mail-id>
'''Ignore the Notify flag''': Yes
'''To''':
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
'''Cc''':
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
==== Notification to the Agent when Created ====
 
* This mail action sends the mail when a new ticket (user request) is created.
* '''This mail goes to the following:'''
# The caller who raised the ticket
# The persons who are included in the '''<mail-id>''' tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''': Notification to the Agent when Created
'''Status''': In production
'''Subject''': The ticket $this->ref$ has been created
'''Body''':
The ticket $this->name()$ has been created.
Title: $this->title$
Description: $this->description$
'''Related Triggers''': Trigger when a Request is created
'''From (email)''': <mail-id>
'''To''':
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
'''Cc''':
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
==== Notification to the Agent when resolved ====
 
* This mail action sends the mail when a ticket (user request) is resolved.
* '''This mail goes to the following:'''
# The agent who is assigned
# The caller who raised the ticket
# The persons who are included in the '''<mail-id>''' tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''': Notification to the Agent when resolved
'''Status''': In production
'''Subject''':  The ticket $this->ref$ has been resolved
'''Body''':
The ticket $this->name()$ has been resolved.
Title: $this->title$
Description: $this->description$
'''Related Triggers''': Trigger when a Request is resolved
'''From (email)''': <mail-id>
'''Ignore the Notify flag''':  Yes
'''To''':
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
'''Cc''':
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
==== Notification when Private log updated ====
 
* This mail action sends the mail when the agent updates in the private log.
* '''This mail goes to the following:'''
# The agent and his/her team
# The persons who are included in the '''<mail-id>''' tag
# The contacts of the request with selected Mail domains
 
'''Name''':  Notification when Private log updated
'''Status''': In production
'''Subject''': Ticket updated by $current_contact->friendlyname$
'''Body''':
Hello,
The ticket $this->ref$ has been updated by **$current_contact->friendlyname$** ($current_contact->email$).
**Update Summary:**
$this->head(private_log)$
'''Related Trigger''': User Request private log update
'''From (email)''': <mail-id>
'''Ignore the Notify flag''':  Yes
'''To''':
SELECT Team WHERE id = :this->team_id
'''Cc''':
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref = :this->ref
AND (c.email LIKE '%@<domain>' OR c.email LIKE '%@<domain>')
 
'''NOTE:''' In the body field, Select '''Insert Code Block (<> icon)''', then select '''HTML''' and inside HTML block enter '''$this->head(private_log)$''' to display the line breaks correctly.
 
==== Notification when Public log updated ====
 
* This mail action sends the mail when the agent updates the public log.
* '''This mail goes to the following:'''
# The agent who is assigned
# The caller who raised the ticket
# The persons who are included in the <mail-id> tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''': Notification when Public log updated
'''Status''': In production
'''Subject''': Ticket $this->ref$ updated by $current_contact->friendlyname$
'''Body''':
Hello,
The ticket $this->ref$ has been updated by **$current_contact->friendlyname$** ($current_contact->email$).
**Update Summary:**
$this->head(public_log)$
'''Related Triggers''': User Request public log update
'''From (email)''': <mail-id>
'''Ignore the Notify flag''': Yes
'''To'''
SELECT Person WHERE id = :this->caller_id OR id = :this->agent_id
'''Cc'''
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<Mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
'''NOTE:''' In the body field, Select '''Insert Code Block (<> icon)''', then select '''HTML''' and inside HTML block enter '''$this->head(private_log)$''' to display the line breaks correctly.
 
==== Notification When Public log updated from Portal ====
 
* This mail action sends the mail when the caller updates the ticket (user request) from the portal.
* This mail goes to the following:
# The agent who is assigned
# The caller who raised the ticket
# The persons who are included in the <mail-id> tag
# The contacts of a service
# The team member (team lead) of a team
# The contacts of the request
 
'''Name''': Notification When Public log updated from Portal
'''Status''': In production
'''Subject''': Ticket updated (via Portal)
'''Body''':
Hello,
The ticket $this->ref$ has been updated. See the latest update below:
Update Summary:
$this->head(public_log)$
'''Related Triggers''': Trigger when log update from the portal
'''From (email)''': <mail-id>
'''Ignore the Notify flag''': Yes
'''To''':
SELECT Person WHERE id = :this->caller_id OR id = :this->agent_id
'''Cc''':
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref
 
'''NOTE:''' In the body field, Select '''Insert Code Block (<> icon)''', then select '''HTML''' and inside HTML block enter '''$this->head(private_log)$''' to display the line breaks correctly.
 
Reference: https://www.itophub.io/wiki/page?id=latest:admin:notifications

Latest revision as of 05:21, 1 August 2025

Home > Ubuntu > Ubuntu 22.04 > Ubuntu 22.04 Itop 3.2 by Combodo > itop 3.2 Mail Notifications

Triggers

Triggers define when notifications have to be sent. Example: when a ticket reaches the state “assigned”.

Create Triggers

  • Go to Configuration > Notifications > Triggers
  • The below are the Default triggers:
  1. Person mentioned on Ticket
  2. Person mentioned on User
  • In the right corner, click on plus icon to create a new trigger

New triggers

Trigger when a Request is assigned

Trigger (on entering a state)
Description:  Trigger when a Request is assigned 
Target class:  User Request 
State: assigned 
Subscription policy: Allow complete unsubscription 

Trigger when a Request is closed

Trigger (on entering a state)
Description:  Trigger when a Request is closed
Target class:  User Request
State: closed
Subscription policy: Allow complete unsubscription 

Trigger when a Request is created

Trigger (on object creation)
Description:  Trigger when a Request is created
Target class:  User Request
Subscription policy: Allow complete unsubscription

Trigger when a Request is resolved

Trigger (on entering a state)
Description:  Trigger when a Request is resolved
Target class:  User Request
State: resolved
Subscription policy: Allow complete unsubscription 

Trigger when log update from the portal

Trigger (when updated from the portal)
Description: Trigger when log update from the portal 
Target class: User Request
Subscription policy: Allow complete unsubscription

Download Send updates by email extension

This extension allows to send an email when updating the case log (either the public log or private log) of a Ticket. Email reply works with any type of Ticket.

  • Go to iTop Hub > Get extensions from iTop Hub

NOTE: We need to register our iTop instance to download the extension

  • Give the username and password
  • Search for the extension
  • On the extension page, on the right side, click on shop kart icon to download the extension
  • follow the on-screen steps to install the extension
  • once installed, we can find the extension in the following path:

iTop Hub > Deployed extensions

  • The extension comes with the following trigger:
  1. User Request public log update
  • create another trigger for private log update
  • User Request private log update
Description:  User Request private log update 
Target class:  User Request 
Context: Console
Log attribute code:  private_log

Reference: https://www.itophub.io/wiki/page?id=extensions:installation

Email Actions

Actions define what will be done. In the current version of iTop, the only available kind of action consist in sending an email.

  • Go to Configuration > Notifications > Email actions
  • In the right corner, click on plus icon to create a new action

New Mail actions

Notification to the agent when assigned

  • This mail action sends the mail when a user is assigned to a ticket (user request).
  • This mail goes to the following:
  1. The agent who is assigned
  2. The caller who raised the request
  3. The persons who are included in the <mail-id> tag
  4. The contacts of a service
  5. The team member (team lead) of a team
  6. The contacts of the request
Name: Notification to the agent when assigned
Status: In production
Subject: The ticket $this->ref$ has been assigned to this agent 
Body: 
The ticket $this->name()$ has been assigned to the agent: $this->agent_id >friendlyname$
Title: $this->title$ 
Description: $this->description$ 
Related Triggers: Trigger when a Request is assigned
From (email): <mail-id>
Ignore the Notify flag: Yes
To: SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
Cc:
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

Notification to the agent when closed

  • This mail action sends the mail when the ticket (user request) is closed
  • This mail goes to the following:
  1. The agent who is assigned
  2. The caller who raised the request
  3. The persons who are included in the <mail-id> tag
  4. The contacts of a service
  5. The team member (team lead) of a team
  6. The contacts of the request
Name:  Notification to the Agent when Closed 
Status: In production
Subject:  The ticket $this->ref$ has been Closed. 
Body:
The ticket $this->name()$ has been Closed. 
Title: $this->title$
Description: $this->description$
Related Triggers: Trigger when a Request is closed
From (email): <mail-id>
Ignore the Notify flag: Yes
To:
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
Cc:
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

Notification to the Agent when Created

  • This mail action sends the mail when a new ticket (user request) is created.
  • This mail goes to the following:
  1. The caller who raised the ticket
  2. The persons who are included in the <mail-id> tag
  3. The contacts of a service
  4. The team member (team lead) of a team
  5. The contacts of the request
Name: Notification to the Agent when Created
Status: In production
Subject: The ticket $this->ref$ has been created 
Body:
The ticket $this->name()$ has been created. 
Title: $this->title$
Description: $this->description$ 
Related Triggers: Trigger when a Request is created
From (email): <mail-id>
To:
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
Cc:
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

Notification to the Agent when resolved

  • This mail action sends the mail when a ticket (user request) is resolved.
  • This mail goes to the following:
  1. The agent who is assigned
  2. The caller who raised the ticket
  3. The persons who are included in the <mail-id> tag
  4. The contacts of a service
  5. The team member (team lead) of a team
  6. The contacts of the request
Name: Notification to the Agent when resolved 
Status: In production
Subject:  The ticket $this->ref$ has been resolved
Body:
The ticket $this->name()$ has been resolved.
Title: $this->title$ 
Description: $this->description$
Related Triggers: Trigger when a Request is resolved
From (email): <mail-id>
Ignore the Notify flag:  Yes
To:
SELECT Person WHERE id = :this->agent_id OR id = :this->caller_id
Cc:
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

Notification when Private log updated

  • This mail action sends the mail when the agent updates in the private log.
  • This mail goes to the following:
  1. The agent and his/her team
  2. The persons who are included in the <mail-id> tag
  3. The contacts of the request with selected Mail domains
Name:  Notification when Private log updated 
Status: In production
Subject: Ticket updated by $current_contact->friendlyname$
Body:
Hello,
The ticket $this->ref$ has been updated by **$current_contact->friendlyname$** ($current_contact->email$).
**Update Summary:**
$this->head(private_log)$ 
Related Trigger: User Request private log update
From (email): <mail-id>
Ignore the Notify flag:  Yes
To:
SELECT Team WHERE id = :this->team_id
Cc:
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref = :this->ref
AND (c.email LIKE '%@<domain>' OR c.email LIKE '%@<domain>')

NOTE: In the body field, Select Insert Code Block (<> icon), then select HTML and inside HTML block enter $this->head(private_log)$ to display the line breaks correctly.

Notification when Public log updated

  • This mail action sends the mail when the agent updates the public log.
  • This mail goes to the following:
  1. The agent who is assigned
  2. The caller who raised the ticket
  3. The persons who are included in the <mail-id> tag
  4. The contacts of a service
  5. The team member (team lead) of a team
  6. The contacts of the request
Name: Notification when Public log updated
Status: In production
Subject: Ticket $this->ref$ updated by $current_contact->friendlyname$
Body:
Hello,
The ticket $this->ref$ has been updated by **$current_contact->friendlyname$** ($current_contact->email$).
**Update Summary:**
$this->head(public_log)$ 
Related Triggers: User Request public log update
From (email): <mail-id>
Ignore the Notify flag: Yes
To
SELECT Person WHERE id = :this->caller_id OR id = :this->agent_id
Cc
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<Mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

NOTE: In the body field, Select Insert Code Block (<> icon), then select HTML and inside HTML block enter $this->head(private_log)$ to display the line breaks correctly.

Notification When Public log updated from Portal

  • This mail action sends the mail when the caller updates the ticket (user request) from the portal.
  • This mail goes to the following:
  1. The agent who is assigned
  2. The caller who raised the ticket
  3. The persons who are included in the <mail-id> tag
  4. The contacts of a service
  5. The team member (team lead) of a team
  6. The contacts of the request
Name: Notification When Public log updated from Portal
Status: In production
Subject: Ticket updated (via Portal) 
Body:
Hello,
The ticket $this->ref$ has been updated. See the latest update below:
Update Summary:
$this->head(public_log)$ 
Related Triggers: Trigger when log update from the portal
From (email): <mail-id>
Ignore the Notify flag: Yes
To:
SELECT Person WHERE id = :this->caller_id OR id = :this->agent_id
Cc:
SELECT Contact AS C
JOIN lnkContactToService AS L ON L.contact_id = C.id
WHERE L.service_id = :this->service_id
UNION
SELECT Contact WHERE email = '<mail-id>'
UNION
SELECT Contact WHERE email = '<mail-id>' AND :this->team_id = '<team-id>'
UNION
SELECT c
FROM Contact AS c
JOIN lnkContactToTicket AS l ON l.contact_id = c.id
JOIN UserRequest AS ur ON l.ticket_id = ur.id
WHERE ur.ref =:this->ref

NOTE: In the body field, Select Insert Code Block (<> icon), then select HTML and inside HTML block enter $this->head(private_log)$ to display the line breaks correctly.

Reference: https://www.itophub.io/wiki/page?id=latest:admin:notifications