diff --git a/workflow_views/includes/workflow_views.views.inc b/workflow_views/includes/workflow_views.views.inc
index c2f1c91..8fdbda3 100644
--- a/workflow_views/includes/workflow_views.views.inc
+++ b/workflow_views/includes/workflow_views.views.inc
@@ -17,6 +17,24 @@
  * Implements hook_views_data().
  */
 function workflow_views_views_data() {
+  // Workflow types.
+  $data['workflow_types']['table']['group']  = t('Workflow');
+  $data['workflow_types']['table']['join'] = array(
+    'node' => array(
+      'field' => 'wid',
+      'left_table' => 'workflows',
+      'left_field' => 'wid',
+    ),
+  );
+  $data['workflow_types']['wid'] = array(
+    'title' => t('Type'),
+    'help' => t('The workflow type of the current entity.'),
+    'field' => array(
+      'handler' => 'workflow_views_handler_field_wid',
+      'click sortable' => TRUE,
+    ),
+  );
+
   // Workflow states.
   $data['workflow_states']['table']['group']  = t('Workflow');
   $data['workflow_states']['table']['join'] = array(
diff --git a/workflow_views/includes/workflow_views_handler_field_wid.inc b/workflow_views/includes/workflow_views_handler_field_wid.inc
new file mode 100644
index 0000000..0b160de
--- /dev/null
+++ b/workflow_views/includes/workflow_views_handler_field_wid.inc
@@ -0,0 +1,53 @@
+<?php
+/**
+ * @file
+ * Provide views field handler for workflow.module.
+ */
+
+/**
+ * Field handler to provide simple workflow name or renderer.
+ */
+class workflow_views_handler_field_wid extends views_handler_field {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['value'] = array('default' => FALSE, 'bool' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['value'] = array(
+      '#title' => t('Display value'),
+      '#description' => t('If checked, row field value will be displayed.'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['value'],
+    );
+    parent::options_form($form, $form_state);
+  }
+
+  function render($values) {
+    if ($this->options['value']) {
+      if (empty($values->{$this->field_alias})) {
+        return NULL;
+      }
+      return $values->{$this->field_alias};
+    }
+    else {
+      if (empty($values->{$this->field_alias})) {
+        return t('No workflow');
+      }
+      static $workflows;
+      if (!isset($workflows)) {
+        $workflows = array();
+        foreach (workflow_get_workflows() as $workflow) {
+          $workflows[$workflow->wid] = check_plain($workflow->name);
+        }
+      }
+      $output = t($workflows[$values->{$this->field_alias}]);
+      if (empty($output)) {
+        $output = t('Unknown workflow');
+      }
+      return check_plain($output);
+    }
+  }
+}
\ No newline at end of file
diff --git a/workflow_views/workflow_views.info b/workflow_views/workflow_views.info
index 2088116..2848420 100644
--- a/workflow_views/workflow_views.info
+++ b/workflow_views/workflow_views.info
@@ -8,5 +8,6 @@ files[] = includes/workflow_views.views.inc
 files[] = includes/workflow_views.views_default.inc
 files[] = includes/workflow_views_handler_filter_sid.inc
 files[] = includes/workflow_views_handler_field_sid.inc
+files[] = includes/workflow_views_handler_field_wid.inc
 files[] = includes/workflow_views_handler_field_username.inc
 files[] = includes/workflow_views_handler_argument_state.inc
