diff --git a/includes/destination.inc b/includes/destination.inc
index 15c499d..17aae74 100644
--- a/includes/destination.inc
+++ b/includes/destination.inc
@@ -73,6 +73,20 @@ abstract class MigrateDestination {
    */
 
   /**
+   * Helper for hook_views_data_alter().
+   *
+   * Derived classes that are able to add to views data may implement this.
+   *
+   * @param $data
+   *  The views data array.
+   * @param $map_table
+   *  The SQLMap map table.
+   *  @todo: Find a way to not need to pass this in.
+   */
+  public function hook_views_data_alter(&$data, $map_table) {
+  }
+
+  /**
    * Maintain stats on the number of destination objects created or updated.
    *
    * @var int
diff --git a/migrate.module b/migrate.module
index 236a7bf..780a093 100644
--- a/migrate.module
+++ b/migrate.module
@@ -556,3 +556,13 @@ function migrate_overview() {
   }
   return $overview;
 }
+
+/**
+ * Implements hook_views_api().
+ */
+function migrate_views_api() {
+  return array(
+    'api' => '3.0-alpha1',
+    'path' => drupal_get_path('module', 'migrate'),
+  );
+}
diff --git a/plugins/destinations/entity.inc b/plugins/destinations/entity.inc
index f3c7ab6..c123f74 100644
--- a/plugins/destinations/entity.inc
+++ b/plugins/destinations/entity.inc
@@ -171,4 +171,25 @@ abstract class MigrateDestinationEntity extends MigrateDestination {
       }
     }
   }
+
+  /**
+   * Helper for hook_views_data_alter().
+   *
+   * Derived classes that are able to add to views data may implement this.
+   */
+  public function hook_views_data_alter(&$data, $map_table) {
+    $entity_info = entity_get_info($this->entityType);
+    $id_field = $entity_info['entity keys']['id'];
+    $data[$entity_info['base table']]['migrate_map_' . $map_table] = array(
+      'real field' => $id_field,
+      // @todo: get the migration name in here.
+      'title' => t('Migration map ' . $map_table),
+      'help' => t('Related this entity to a migration map table.'),
+      'relationship' => array(
+        'base' => $map_table,
+        'base field' => 'destid1',
+      ),
+    );
+  }
+
 }
diff --git a/plugins/sources/sqlmap.inc b/plugins/sources/sqlmap.inc
index 7cf6bb1..229dce8 100644
--- a/plugins/sources/sqlmap.inc
+++ b/plugins/sources/sqlmap.inc
@@ -54,6 +54,26 @@ class MigrateSQLMap extends MigrateMap {
   }
 
   /**
+   * Helper for hook_views_data_alter().
+   *
+   * Derived classes that are able to add to views data may implement this.
+   */
+  public function hook_views_data_alter(&$data) {
+    $data[$this->mapTable] = array(
+      'table' => array(
+        'group' => t('Migrate'),
+      ),
+      'sourceid1' => array(
+        'field' => array(
+          'title' => 'source id 1',
+          'help' => 'too',
+          'handler' => 'views_handler_field_numeric',
+        ),
+      ),
+    );
+  }
+
+  /**
    * Drupal connection object on which to create the map/message tables
    * @var DatabaseConnection
    */
