diff --git a/core/modules/action/migration_templates/d6_action.yml b/core/modules/action/migration_templates/d6_action.yml
new file mode 100644
index 0000000..8b02d26
--- /dev/null
+++ b/core/modules/action/migration_templates/d6_action.yml
@@ -0,0 +1,36 @@
+id: d6_action
+label: Actions
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_action
+process:
+  id:
+    -
+      plugin: machine_name
+      source: aid
+  label: description
+  type: type
+  plugin:
+    -
+      plugin: static_map
+      source: callback
+      map:
+        system_goto_action: action_goto_action
+        system_send_email_action: action_send_email_action
+        system_message_action: action_message_action
+        user_block_ip_action: 0
+      bypass: true
+    -
+      plugin: skip_on_empty
+      method: row
+  configuration:
+    -
+      plugin: default_value
+      source: parameters
+      default_value: "a:0:{}"
+    -
+      plugin: callback
+      callable: unserialize
+destination:
+  plugin: entity:action
diff --git a/core/modules/action/migration_templates/d7_action.yml b/core/modules/action/migration_templates/d7_action.yml
new file mode 100644
index 0000000..6db7dea
--- /dev/null
+++ b/core/modules/action/migration_templates/d7_action.yml
@@ -0,0 +1,36 @@
+id: d7_action
+label: Actions
+migration_tags:
+  - Drupal 7
+source:
+  plugin: d7_action
+process:
+  id:
+    -
+      plugin: machine_name
+      source: aid
+  label: label
+  type: type
+  plugin:
+    -
+      plugin: static_map
+      source: callback
+      map:
+        system_goto_action: action_goto_action
+        system_send_email_action: action_send_email_action
+        system_message_action: action_message_action
+        system_block_ip_action: 0
+      bypass: true
+    -
+      plugin: skip_on_empty
+      method: row
+  configuration:
+    -
+      plugin: default_value
+      source: parameters
+      default_value: "a:0:{}"
+    -
+      plugin: callback
+      callable: unserialize
+destination:
+  plugin: entity:action
diff --git a/core/modules/action/src/Plugin/migrate/source/d6/Action.php b/core/modules/action/src/Plugin/migrate/source/d6/Action.php
index 2ca7741..5403b20 100644
--- a/core/modules/action/src/Plugin/migrate/source/d6/Action.php
+++ b/core/modules/action/src/Plugin/migrate/source/d6/Action.php
@@ -8,12 +8,14 @@
 namespace Drupal\action\Plugin\migrate\source\d6;
 
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+use Drupal\migrate\Row;
 
 /**
  * Drupal 6 action source from database.
  *
  * @MigrateSource(
- *   id = "d6_action"
+ *   id = "d6_action",
+ *   source_provider = "system"
  * )
  */
 class Action extends DrupalSqlBase {
@@ -22,7 +24,7 @@ class Action extends DrupalSqlBase {
    * {@inheritdoc}
    */
   public function query() {
-    $query = $this->select('actions', 'a')
+    return $this->select('actions', 'a')
       ->fields('a', array(
         'aid',
         'type',
@@ -31,7 +33,6 @@ public function query() {
         'description',
       )
     );
-    return $query;
   }
 
   /**
@@ -55,4 +56,15 @@ public function getIds() {
     return $ids;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    $aid = $row->getSourceProperty('aid');
+    if (is_numeric($aid)) {
+      $label = $row->getSourceProperty('description');
+      $row->setSourceProperty('aid', $label);
+    }
+  }
+
 }
diff --git a/core/modules/action/src/Plugin/migrate/source/d7/Action.php b/core/modules/action/src/Plugin/migrate/source/d7/Action.php
new file mode 100644
index 0000000..1084e1a
--- /dev/null
+++ b/core/modules/action/src/Plugin/migrate/source/d7/Action.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\action\Plugin\migrate\source\d7\Action.
+ */
+
+namespace Drupal\action\Plugin\migrate\source\d7;
+
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+use Drupal\migrate\Row;
+
+/**
+ * Drupal 7 action source from database.
+ *
+ * @MigrateSource(
+ *   id = "d7_action",
+ *   source_provider = "system"
+ * )
+ */
+class Action extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    return $this->select('actions', 'a')
+      ->fields('a', array(
+          'aid',
+          'type',
+          'callback',
+          'parameters',
+          'label',
+        )
+      );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return array(
+      'aid' => $this->t('Action ID'),
+      'type' => $this->t('Module'),
+      'callback' => $this->t('Callback function'),
+      'parameters' => $this->t('Action configuration'),
+      'label' => $this->t('Label of the action'),
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['aid']['type'] = 'string';
+    return $ids;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    $aid = $row->getSourceProperty('aid');
+    if (is_numeric($aid)) {
+      $label = $row->getSourceProperty('label');
+      $row->setSourceProperty('aid', $label);
+    }
+  }
+
+}
