diff --git a/app/javascript/shared/components/CustomerSatisfaction.vue b/app/javascript/shared/components/CustomerSatisfaction.vue
index ead32834d..3bf242dcc 100644
--- a/app/javascript/shared/components/CustomerSatisfaction.vue
+++ b/app/javascript/shared/components/CustomerSatisfaction.vue
@@ -29,8 +29,8 @@
         :disabled="isButtonDisabled"
         :style="{ background: widgetColor, borderColor: widgetColor }"
       >
-        
-        
+        
+        
       
     
   
@@ -50,6 +50,10 @@ export default {
       type: Object,
       default: () => {},
     },
+    messageId: {
+      type: Number,
+      required: true,
+    },
   },
   data() {
     return {
@@ -84,10 +88,10 @@ export default {
   mounted() {
     if (this.isRatingSubmitted) {
       const {
-        csat_survey_response: { rating, feedback },
+        csat_survey_response: { rating, feedback_message },
       } = this.messageContentAttributes;
       this.selectedRating = rating;
-      this.feedback = feedback;
+      this.feedback = feedback_message;
     }
   },
 
@@ -100,11 +104,23 @@ export default {
         'emoji-button',
       ];
     },
-    onSubmit() {
-      this.$emit('submit', {
-        rating: this.selectedRating,
-        feedback: this.feedback,
-      });
+    async onSubmit() {
+      this.isUpdating = true;
+      try {
+        await this.$store.dispatch('message/update', {
+          submittedValues: {
+            csat_survey_response: {
+              rating: this.selectedRating,
+              feedback_message: this.feedback,
+            },
+          },
+          messageId: this.messageId,
+        });
+      } catch (error) {
+        // Ignore error
+      } finally {
+        this.isUpdating = false;
+      }
     },
     selectRating(rating) {
       this.selectedRating = rating.value;
diff --git a/app/javascript/widget/components/AgentMessageBubble.vue b/app/javascript/widget/components/AgentMessageBubble.vue
index bdb7ba981..2aec14e05 100755
--- a/app/javascript/widget/components/AgentMessageBubble.vue
+++ b/app/javascript/widget/components/AgentMessageBubble.vue
@@ -47,7 +47,7 @@
     
   
 
@@ -125,17 +125,6 @@ export default {
         messageId: this.messageId,
       });
     },
-    onCSATSubmit({ feedback, rating }) {
-      this.onResponse({
-        submittedValues: {
-          csat_survey_response: {
-            rating,
-            feedback_message: feedback,
-          },
-        },
-        messageId: this.messageId,
-      });
-    },
   },
 };
 
diff --git a/app/javascript/widget/components/template/EmailInput.vue b/app/javascript/widget/components/template/EmailInput.vue
index 3afcebb64..cf37839f0 100644
--- a/app/javascript/widget/components/template/EmailInput.vue
+++ b/app/javascript/widget/components/template/EmailInput.vue
@@ -18,7 +18,7 @@
         :disabled="$v.email.$invalid"
         :style="{ background: widgetColor, borderColor: widgetColor }"
       >
-        
+        
         
       
     
@@ -47,11 +47,11 @@ export default {
   data() {
     return {
       email: '',
+      isUpdating: false,
     };
   },
   computed: {
     ...mapGetters({
-      uiFlags: 'message/getUIFlags',
       widgetColor: 'appConfig/getWidgetColor',
     }),
     hasSubmitted() {
@@ -68,15 +68,21 @@ export default {
     },
   },
   methods: {
-    onSubmit() {
+    async onSubmit() {
       if (this.$v.$invalid) {
         return;
       }
-
-      this.$store.dispatch('message/update', {
-        email: this.email,
-        messageId: this.messageId,
-      });
+      this.isUpdating = true;
+      try {
+        await this.$store.dispatch('message/update', {
+          email: this.email,
+          messageId: this.messageId,
+        });
+      } catch (error) {
+        // Ignore error
+      } finally {
+        this.isUpdating = false;
+      }
     },
   },
 };