diff --git a/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php b/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
index 6e39b48..f18a0f8 100644
--- a/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
@@ -127,6 +127,20 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
       '#default_value' => $this->settings['custom_text'],
     );
 
+    if ( \Drupal::moduleHandler()->moduleExists('token') ) {
+      $element['tokens'] = array(
+        '#theme' => 'token_tree_link',
+        '#token_types' => ['node'],
+        '#global_types' => TRUE,
+        '#click_insert' => TRUE,
+      );
+    }
+    else {
+      $element['token']['token_help'] = array(
+        '#markup' => '<p>' . t('Enable the <a href="@drupal-token">Token module</a> to view the available token browser.', array('@drupal-token' => 'http://drupal.org/project/token')) . '</p>',
+      );
+    }
+
     $element['make_link'] = array(
       '#title' => $this->t('Output this field as a custom link'),
       '#type' => 'checkbox',
@@ -211,7 +225,10 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
     foreach ($items as $delta => $item) {
       $output = $item->value;
       if (!empty($output) && !empty($custom_text)) {
-        $output = $custom_text;
+        //Token Replacement.
+        $node = $items->getEntity();
+        $token_service = \Drupal::token();
+        $output = $token_service->replace($custom_text, array('node'=>$node),  $options = array());
       }
       if ($text_case != 'none') {
         $plugin = $this->transformCaseManager->getDefinition($text_case);
