diff --git a/app/controllers/templates_preferences_controller.rb b/app/controllers/templates_preferences_controller.rb
index ca21a52e..30f1c3d6 100644
--- a/app/controllers/templates_preferences_controller.rb
+++ b/app/controllers/templates_preferences_controller.rb
@@ -9,7 +9,7 @@ class TemplatesPreferencesController < ApplicationController
     authorize!(:update, @template)
 
     @template.preferences = @template.preferences.merge(template_params[:preferences])
-    @template.preferences = @template.preferences.reject { |_, v| v.is_a?(String) && v.blank? }
+    @template.preferences = @template.preferences.reject { |_, v| (v.is_a?(String) || v.is_a?(Hash)) && v.blank? }
     @template.save!
 
     head :ok
@@ -23,12 +23,16 @@ class TemplatesPreferencesController < ApplicationController
                       documents_copy_email_subject documents_copy_email_body
                       documents_copy_email_enabled documents_copy_email_attach_audit
                       completed_notification_email_attach_documents
+                      completed_redirect_url
                       completed_notification_email_subject completed_notification_email_body
-                      completed_notification_email_enabled completed_notification_email_attach_audit]
+                      completed_notification_email_enabled completed_notification_email_attach_audit] +
+                      [completed_message: %i[title body]]
     ).tap do |attrs|
       attrs[:preferences] = attrs[:preferences].transform_values do |value|
         if %w[true false].include?(value)
           value == 'true'
+        elsif value.respond_to?(:compact_blank)
+          value.compact_blank
         else
           value
         end
diff --git a/app/views/submit_form/_submission_form.html.erb b/app/views/submit_form/_submission_form.html.erb
index fc8778d7..5fd0c640 100644
--- a/app/views/submit_form/_submission_form.html.erb
+++ b/app/views/submit_form/_submission_form.html.erb
@@ -1,4 +1,4 @@
 <% data_attachments = attachments_index.values.select { |e| e.record_id == submitter.id }.to_json(only: %i[uuid created_at], methods: %i[url filename content_type]) %>
 <% data_fields = (submitter.submission.template_fields || submitter.submission.template.fields).select { |f| f['submitter_uuid'] == submitter.uuid }.to_json %>
 <% invite_submitters = (submitter.submission.template_submitters || submitter.submission.template.submitters).select { |s| s['invite_by_uuid'] == submitter.uuid && submitter.submission.submitters.none? { |e| e.uuid == s['uuid'] } }.to_json %>
-