diff --git a/rules_data_transforms.rules.inc b/rules_data_transforms.rules.inc
index cbdd298..331580b 100644
--- a/rules_data_transforms.rules.inc
+++ b/rules_data_transforms.rules.inc
@@ -185,6 +185,40 @@ function rules_data_transforms_rules_action_info() {
         ),
       ),
     ) + $defaults,
+    'truncate' => array(
+      'label' => t('Truncates text'),
+      'base' => 'rules_data_transforms_action_truncate',
+      'parameter' => array(
+        'input_text' => array(
+          'type' => 'text',
+          'label' => t('Input text'),
+        ),
+        'characters' => array(
+          'type' => 'integer',
+          'label' => t('number of characters'),
+          'description' => t('The upper limit of the text length, including trailing ellipsis if ellipsis is TRUE'),
+          'optional' => TRUE,
+        ),
+		  'truncate_wordsafe' => array(
+          'type' => 'boolean',
+          'label' => t('Wordsafe'),
+          'description' => t('Truncate on a word boundary'),
+               'default value' => 'FALSE',
+        ),
+		  'truncate_ellipsis' => array(
+          'type' => 'boolean',
+          'label' => t('Ellipsis'),
+          'description' => t('add ... to the end of the truncated text'),
+               'default value' => 'FALSE',
+        ),
+      ),
+      'provides' => array(
+        'truncate_text' => array(
+          'type' => 'text',
+          'label' => t('Truncate text'),
+        ),
+      ),
+    ) + $defaults,
     'strip_tags' => array(
       'label' => t('Remove HTML tags'),
       'base' => 'rules_data_transforms_action_strip_tags',
@@ -393,6 +427,10 @@ function rules_data_transforms_action_trim($input_text, $side, $mask) {
   return array('trimmed_text' => $func($input_text));
 }
 
+function rules_data_transforms_action_truncate($input_text, $characters, $truncate_wordsafe, $truncate_ellipsis) {
+  return array('truncate_text' => truncate_utf8($input_text, $characters, $wordsafe = $truncate_wordsafe, $add_ellipsis = $truncate_ellipsis));
+}
+
 function rules_data_transforms_action_strip_tags($input_text, $allowed) {
   if (isset($allowed)) {
     return array('stripped_text' => strip_tags($input_text, $allowed));
