diff --git a/app/controllers/api/templates_controller.rb b/app/controllers/api/templates_controller.rb
index 43d5f99c..7772afba 100644
--- a/app/controllers/api/templates_controller.rb
+++ b/app/controllers/api/templates_controller.rb
@@ -53,7 +53,7 @@ module Api
 
     def template_params
       params.require(:template).permit(
-        :name,
+        :name, values: {},
         schema: [%i[attachment_uuid name]],
         submitters: [%i[name uuid]],
         fields: [[:uuid, :submitter_uuid, :name, :type, :required, :readonly, :default_value,
diff --git a/app/javascript/form.js b/app/javascript/form.js
index ebdcea17..c681f343 100644
--- a/app/javascript/form.js
+++ b/app/javascript/form.js
@@ -10,6 +10,7 @@ window.customElements.define('submission-form', class extends HTMLElement {
 
     this.app = createApp(Form, {
       submitter: JSON.parse(this.dataset.submitter),
+      templateValues: JSON.parse(this.dataset.templateValues),
       authenticityToken: this.dataset.authenticityToken,
       canSendEmail: this.dataset.canSendEmail === 'true',
       isDirectUpload: this.dataset.isDirectUpload === 'true',
diff --git a/app/javascript/submission_form/area.vue b/app/javascript/submission_form/area.vue
index fbf7a6f4..0a2f2f3f 100644
--- a/app/javascript/submission_form/area.vue
+++ b/app/javascript/submission_form/area.vue
@@ -21,20 +21,19 @@
         />
       
     
-    
-      
-        {{ modelValue.join(', ') }}
-      
-      
-        {{ formattedDate }}
-      
-      
-        {{ modelValue }}
-      
-    
+  
+  
+  
+    
   
 
    {
         this.textOverflowChars = this.$refs.textContainer.scrollHeight > this.$refs.textContainer.clientHeight ? this.modelValue.length : 0
diff --git a/app/javascript/submission_form/areas.vue b/app/javascript/submission_form/areas.vue
index 0cf3b825..5818a8fa 100644
--- a/app/javascript/submission_form/areas.vue
+++ b/app/javascript/submission_form/areas.vue
@@ -25,6 +25,7 @@
             :with-label="withLabel"
             :is-value-set="step.some((f) => f.uuid in values)"
             :attachments-index="attachmentsIndex"
+            :template-values="templateValues"
             @click="$emit('focus-step', step)"
           />
         
@@ -66,6 +67,13 @@ export default {
       type: Array,
       required: false,
       default: () => []
+    },
+    templateValues: {
+      type: Object,
+      required: false,
+      default () {
+        return {}
+      }
     }
   },
   emits: ['focus-step'],
diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue
index e5bc40d3..b1f9e924 100644
--- a/app/javascript/submission_form/form.vue
+++ b/app/javascript/submission_form/form.vue
@@ -6,6 +6,7 @@
     :attachments-index="attachmentsIndex"
     :with-label="!isAnonymousChecboxes"
     :current-step="currentStepFields"
+    :template-values="templateValues"
     @focus-step="[saveStep(), goToStep($event, false, true), currentField.type !== 'checkbox' ? isFormVisible = true : '']"
   />
   
           
+          
+            
+          
           
       
       {{ optionIndexText }} {{ field.name || defaultName }}
       
         
       
     
+    
+    
+      
+    
     
     
     
@@ -156,7 +176,7 @@
 import FieldSubmitter from './field_submitter'
 import FieldType from './field_type'
 import Field from './field'
-import { IconX } from '@tabler/icons-vue'
+import { IconX, IconWriting } from '@tabler/icons-vue'
 import { v4 } from 'uuid'
 
 export default {
@@ -164,7 +184,8 @@ export default {
   components: {
     FieldType,
     FieldSubmitter,
-    IconX
+    IconX,
+    IconWriting
   },
   inject: ['template', 'selectedAreaRef', 'save'],
   props: {
@@ -188,12 +209,13 @@ export default {
       default: null
     }
   },
-  emits: ['start-resize', 'stop-resize', 'start-drag', 'stop-drag', 'remove'],
+  emits: ['start-resize', 'stop-resize', 'start-drag', 'stop-drag', 'remove', 'update:myText'],
   data () {
     return {
       isResize: false,
       isDragged: false,
       isNameFocus: false,
+      myLocalText: '',
       textOverflowChars: 0,
       dragFrom: { x: 0, y: 0 }
     }
@@ -278,6 +300,15 @@ export default {
     }
   },
   mounted () {
+    if (this.field.type === 'my_text') {
+      const fieldUuid = this.field.uuid
+      if (this.template.values && this.template.values[fieldUuid]) {
+        this.myLocalText = this.template.values[fieldUuid]
+      } else {
+        this.myLocalText = ''
+      }
+    }
+
     if (this.field.type === 'text' && this.field.default_value && this.$refs.textContainer && (this.textOverflowChars === 0 || (this.textOverflowChars - 4) > this.field.default_value)) {
       this.$nextTick(() => {
         this.textOverflowChars = this.$el.clientHeight < this.$refs.textContainer.clientHeight ? this.field.default_value.length : 0
@@ -285,6 +316,15 @@ export default {
     }
   },
   methods: {
+    makeMyText (e) {
+      this.myLocalText = e.target.value ? e.target.value : this.myLocalText
+      this.sendSaveText(
+        { [this.field.uuid]: e.target.value }
+      )
+    },
+    sendSaveText (event) {
+      this.$emit('update:myText', event)
+    },
     onNameFocus (e) {
       this.selectedAreaRef.value = this.area
 
diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue
index b6e91240..a3f9b4dd 100644
--- a/app/javascript/template_builder/builder.vue
+++ b/app/javascript/template_builder/builder.vue
@@ -134,6 +134,7 @@
                 @draw="onDraw"
                 @drop-field="onDropfield"
                 @remove-area="removeArea"
+                @update:my-text="updateMyText"
               />
               
   
 
@@ -60,7 +61,7 @@ export default {
       default: false
     }
   },
-  emits: ['draw', 'drop-field', 'remove-area'],
+  emits: ['draw', 'drop-field', 'remove-area', 'update:myText'],
   data () {
     return {
       pageRefs: []
diff --git a/app/javascript/template_builder/field.vue b/app/javascript/template_builder/field.vue
index 17ef7775..d68df576 100644
--- a/app/javascript/template_builder/field.vue
+++ b/app/javascript/template_builder/field.vue
@@ -31,7 +31,7 @@
           />
         
         
           
diff --git a/app/javascript/template_builder/field_submitter.vue b/app/javascript/template_builder/field_submitter.vue
index 55cedb58..f89f2eb0 100644
--- a/app/javascript/template_builder/field_submitter.vue
+++ b/app/javascript/template_builder/field_submitter.vue
@@ -97,33 +97,64 @@
         :class="colors[submitters.indexOf(selectedSubmitter)]"
       />
     
-