diff --git a/api/classes/CAlert.php b/api/classes/CAlert.php
index e478d63..e255fa3 100644
--- a/api/classes/CAlert.php
+++ b/api/classes/CAlert.php
@@ -89,6 +89,7 @@ class CAlert extends CZBXAPI {
 			'selectMediatypes'			=> null,
 			'selectUsers'				=> null,
 			'selectHosts'				=> null,
+			'selectActions'				=> null,
 			'countOutput'				=> null,
 			'preservekeys'				=> null,
 			'editable'					=> null,
@@ -352,6 +353,14 @@ class CAlert extends CZBXAPI {
 						}
 						$result[$alert['alertid']]['mediatypes'][] = array('mediatypeid' => $alert['mediatypeid']);
 					}
+
+					// actionids
+					if (isset($alert['actionid']) && is_null($options['selectActions'])) {
+						if (!isset($result[$alert['alertid']]['actions'])) {
+							$result[$alert['alertid']]['actions'] = array();
+						}
+						$result[$alert['alertid']]['actions'][] = array('actionid' => $alert['actionid']);
+					}
 					$result[$alert['alertid']] += $alert;
 				}
 			}
@@ -394,6 +403,14 @@ class CAlert extends CZBXAPI {
 			}
 		}
 
+		// adding actions
+		if (!is_null($options['selectActions']) && str_in_array($options['selectActions'], $subselectsAllowedOutputs)) {
+			$actions = API::Action()->get(array(
+				'output' => $options['selectActions'],
+				'preservekeys' => true
+			));
+		}
+
 		foreach ($result as $alertid => $alert) {
 			if (isset($alert['hostid']) && isset($hosts[$alert['hostid']])) {
 				$result[$alertid]['hosts'][] = $hosts[$alert['hostid']];
@@ -404,6 +421,9 @@ class CAlert extends CZBXAPI {
 			if (isset($users[$alert['userid']])) {
 				$result[$alertid]['users'][] = $users[$alert['userid']];
 			}
+			if (isset($actions[$alert['actionid']])) {
+				$result[$alertid]['actions'][] = $actions[$alert['actionid']];
+			}
 		}
 
 		// removing keys (hash -> array)
diff --git a/api/classes/CEvent.php b/api/classes/CEvent.php
index 5596bff..904f9c4 100644
--- a/api/classes/CEvent.php
+++ b/api/classes/CEvent.php
@@ -508,6 +508,7 @@ class CEvent extends CZBXAPI {
 			$dbAlerts = API::Alert()->get(array(
 				'output' => $options['select_alerts'],
 				'selectMediatypes' => API_OUTPUT_EXTEND,
+				'selectActions' => API_OUTPUT_EXTEND,
 				'nodeids' => $nodeids,
 				'eventids' => $eventids,
 				'nopermissions' => true,
diff --git a/auditacts.php b/auditacts.php
index 6920c63..ed5822a 100644
--- a/auditacts.php
+++ b/auditacts.php
@@ -103,6 +103,8 @@ $options = array(
 	'time_till' => $till,
 	'output' => API_OUTPUT_EXTEND,
 	'selectMediatypes' => API_OUTPUT_EXTEND,
+ 	'selectUsers' => API_OUTPUT_EXTEND,
+	'selectActions' => API_OUTPUT_EXTEND,
 	'sortfield' => 'alertid',
 	'sortorder' => ZBX_SORT_DOWN,
 	'limit' => $config['search_limit'] + 1
diff --git a/include/actions.inc.php b/include/actions.inc.php
index 4263253..81846a8 100644
--- a/include/actions.inc.php
+++ b/include/actions.inc.php
@@ -724,18 +724,32 @@ function count_operations_delay($operations, $def_period = 0) {
 }
 
 function get_action_msgs_for_event($event) {
+    if (CUser::$userData['type'] == USER_TYPE_SUPER_ADMIN) {
+        $privileges=true;
+    }
+    else {
+        $privileges=false;
+    }
+
 	$table = new CTableInfo(_('No actions found.'));
 	$table->setHeader(array(
 		is_show_all_nodes() ? _('Nodes') : null,
 		_('Time'),
+		$privileges ? _('Action') : null,
 		_('Type'),
 		_('Status'),
 		_('Retries left'),
+		$privileges ? _('Alias') : null,
 		_('Recipient(s)'),
 		_('Message'),
 		_('Error')
 	));
 
+    $users = API::User()->get(array(
+        'preservekeys' => '1',
+        'output' => array('alias')
+    ));
+
 	$alerts = $event['alerts'];
 	foreach ($alerts as $alertid => $alert) {
 		if ($alert['alerttype'] != ALERT_TYPE_MESSAGE) {
@@ -743,6 +757,11 @@ function get_action_msgs_for_event($event) {
 		}
 
 		$mediatype = array_pop($alert['mediatypes']);
+		$userid = $alert['userid'];
+		if ($privileges) {
+			$action = array_pop($alert['actions']);
+            $alias = $users[$userid]['alias'];
+		}
 
 		$time = zbx_date2str(EVENT_ACTION_MESSAGES_DATE_FORMAT, $alert['clock']);
 		if ($alert['esc_step'] > 0) {
@@ -790,9 +809,11 @@ function get_action_msgs_for_event($event) {
 		$table->addRow(array(
 			get_node_name_by_elid($alert['alertid']),
 			new CCol($time, 'top'),
+			$privileges ? new CCol($action['name'], 'top') : null,
 			new CCol((!empty($mediatype['description']) ? $mediatype['description'] : ''), 'top'),
 			new CCol($status, 'top'),
 			new CCol($retries, 'top'),
+			$privileges ? new CCol($alias, 'top') : null,
 			new CCol($sendto, 'top'),
 			new CCol($message, 'wraptext top'),
 			new CCol($error, 'wraptext top')
@@ -803,10 +824,18 @@ function get_action_msgs_for_event($event) {
 }
 
 function get_action_cmds_for_event($event) {
+    if (CUser::$userData['type'] == USER_TYPE_SUPER_ADMIN) {
+        $privileges=true;
+    }
+    else {
+        $privileges=false;
+    }
+
 	$table = new CTableInfo(_('No actions found.'));
 	$table->setHeader(array(
 		is_show_all_nodes() ? _('Nodes') : null,
 		_('Time'),
+		$privileges ? _('Action') : null,
 		_('Status'),
 		_('Command'),
 		_('Error')
@@ -818,6 +847,9 @@ function get_action_cmds_for_event($event) {
 			continue;
 		}
 
+		if ($privileges) {
+			$action = array_pop($alert['actions']);
+		}
 		$time = zbx_date2str(EVENT_ACTION_CMDS_DATE_FORMAT, $alert['clock']);
 		if ($alert['esc_step'] > 0) {
 			$time = array(
@@ -850,6 +882,7 @@ function get_action_cmds_for_event($event) {
 		$table->addRow(array(
 			get_node_name_by_elid($alert['alertid']),
 			new CCol($time, 'top'),
+			$privileges ? new CCol($action['name'], 'top') : null,
 			new CCol($status, 'top'),
 			new CCol($message, 'wraptext top'),
 			new CCol($error, 'wraptext top')
diff --git a/include/views/administration.auditacts.list.php b/include/views/administration.auditacts.list.php
index 434d70a..8cf6043 100644
--- a/include/views/administration.auditacts.list.php
+++ b/include/views/administration.auditacts.list.php
@@ -68,9 +68,11 @@ $auditTable = new CTableInfo(_('No actions defined.'));
 $auditTable->setHeader(array(
 	is_show_all_nodes() ? _('Nodes') : null,
 	_('Time'),
+	_('Action name'),
 	_('Type'),
 	_('Status'),
 	_('Retries left'),
+	_('Alias'),
 	_('Recipient(s)'),
 	_('Message'),
 	_('Error')
@@ -81,6 +83,8 @@ foreach ($this->data['alerts'] as $alert) {
 		$mediatype = array('description' => '');
 	}
 
+	$action = array_pop($alert['actions']);
+
 	if ($alert['status'] == ALERT_STATUS_SENT) {
 		if ($alert['alerttype'] == ALERT_TYPE_MESSAGE) {
 			$status = new CSpan(_('sent'), 'green');
@@ -101,9 +105,11 @@ foreach ($this->data['alerts'] as $alert) {
 
 	if ($alert['alerttype'] == ALERT_TYPE_MESSAGE) {
 		$message = array(bold(_('Subject').': '), br(), $alert['subject'], br(), br(), bold(_('Message').': '), br(), zbx_nl2br($alert['message']));
+        $user = array_pop($alert['users']);
 	}
 	else {
 		$message = array(bold(_('Command').': '), br(), zbx_nl2br($alert['message']));
+	    $user['alias'] = new CSpan(SPACE, 'off');
 	}
 
 	$error = empty($alert['error']) ? new CSpan(SPACE, 'off') : new CSpan($alert['error'], 'on');
@@ -111,9 +117,11 @@ foreach ($this->data['alerts'] as $alert) {
 	$auditTable->addRow(array(
 		get_node_name_by_elid($alert['alertid']),
 		new CCol(zbx_date2str(_('d M Y H:i:s'), $alert['clock']), 'top'),
+		new CCol($action['name'], 'top'),
 		new CCol($mediatype['description'], 'top'),
 		new CCol($status, 'top'),
 		new CCol($retries, 'top'),
+		new CCol($user['alias'], 'top'),
 		new CCol($alert['sendto'], 'top'),
 		new CCol($message, 'wraptext top'),
 		new CCol($error, 'wraptext top')
