Free report - the secrets to selling more by making customers happy

Forget product and price – customer happiness is the new competition ground.

 

Our new expert report will tell you how to win at it.

Get the report

Do you spend time thinking about how to grow your sales?

Or do you spend time thinking about how to make your customers happy?

If it’s the former, you’ve got your priorities the wrong way round.

Put your customer’s happiness first and sales will naturally follow. After all, happy customers spend up to 140% more.

Just imagine that.

140% more customer spend. What would that do for the growth of your business?

And it’s not even the only benefit of the happy customer economy (although it is a compelling one).

Making customers happy doesn’t have to be difficult though. You’ve probably got a lot of the elements in place already. You just need to know how to use them, which is why we’ve combined expertise with retail technology leaders Red Ant to tell you exactly that.

Download the free report now to learn how to use omnichannel experiences to ensure you’re maximising spend through customer happiness every time someone shops with you.

You’ll get actionable insights that you can apply to four of the most important emerging customer behaviours – plus the often overlooked role of staff happiness in customer happiness.

Enter your email address below now to get your free copy instantly.

(function(global) {
function serialize(form){if(!form||form.nodeName!==”FORM”){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===””){continue}switch(form.elements[i].nodeName){case”INPUT”:switch(form.elements[i].type){case”text”:case”hidden”:case”password”:case”button”:case”reset”:case”submit”:q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].value));break;case”checkbox”:case”radio”:if(form.elements[i].checked){q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].value))}break;case”file”:break}break;case”TEXTAREA”:q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].value));break;case”SELECT”:switch(form.elements[i].type){case”select-one”:q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].value));break;case”select-multiple”:for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case”BUTTON”:switch(form.elements[i].type){case”reset”:case”submit”:case”button”:q.push(form.elements[i].name+”=”+encodeURIComponent(form.elements[i].value));break}break}}return q.join(“&”)};

function extend(destination, source) {
for (var prop in source) {
destination[prop] = source[prop];
}
}

if (!Mimi) var Mimi = {};
if (!Mimi.Signups) Mimi.Signups = {};

Mimi.Signups.EmbedValidation = function() {
this.initialize();

var _this = this;
if (document.addEventListener) {
this.form.addEventListener(‘submit’, function(e){
_this.onFormSubmit(e);
});
} else {
this.form.attachEvent(‘onsubmit’, function(e){
_this.onFormSubmit(e);
});
}
};

extend(Mimi.Signups.EmbedValidation.prototype, {
initialize: function() {
this.form = document.getElementById(’ema_signup_form’);
this.submit = document.getElementById(‘webform_submit_button’);
this.callbackName = ‘jsonp_callback_’ + Math.round(100000 * Math.random());
this.validEmail = /.+@.+\..+/
},

onFormSubmit: function(e) {
e.preventDefault();

this.validate();
if (this.isValid) {
this.submitForm();
} else {
this.revalidateOnChange();
}
},

validate: function() {
this.isValid = true;
this.emailValidation();
this.fieldAndListValidation();
this.updateFormAfterValidation();
},

emailValidation: function() {
var email = document.getElementById(‘signup_email’);

if (this.validEmail.test(email.value)) {
this.removeTextFieldError(email);
} else {
this.textFieldError(email);
this.isValid = false;
}
},

fieldAndListValidation: function() {
var fields = this.form.querySelectorAll(‘.mimi_field.required’);

for (var i = 0; i = 0) {
return ‘checkboxes’;
} else {
return ‘text_field’;
}
},

checkboxAndRadioValidation: function(field) {
var inputs = field.getElementsByTagName(‘input’),
selected = false;

for (var i = 0; i < inputs.length; ++i) {
var input = inputs[i];
if((input.type === 'checkbox' || input.type === 'radio') && input.checked) {
selected = true;
}
}

if (selected) {
field.className = field.className.replace(/ invalid/g, '');
} else {
if (field.className.indexOf('invalid') === -1) {
field.className += ' invalid';
}

this.isValid = false;
}
},

textAndDropdownValidation: function(field, type) {
var inputs = field.getElementsByTagName('input');

for (var i = 0; i = 0) {
if (type === ‘text_field’) {
this.textValidation(input);
} else {
this.dropdownValidation(field, input);
}
}
}
this.htmlEmbedDropdownValidation(field);
},

textValidation: function(input) {
if (input.id === ‘signup_email’) return;

if (input.value) {
this.removeTextFieldError(input);
} else {
this.textFieldError(input);
this.isValid = false;
}
},

dropdownValidation: function(field, input) {
if (input.value) {
field.className = field.className.replace(/ invalid/g, ”);
} else {
if (field.className.indexOf(‘invalid’) === -1) field.className += ‘ invalid’;
this.onSelectCallback(input);
this.isValid = false;
}
},

htmlEmbedDropdownValidation: function(field) {
var dropdowns = field.querySelectorAll(‘.mimi_html_dropdown’);
var _this = this;

for (var i = 0; i < dropdowns.length; ++i) {
var dropdown = dropdowns[i];

if (dropdown.value) {
field.className = field.className.replace(/ invalid/g, '');
} else {
if (field.className.indexOf('invalid') === -1) field.className += ' invalid';
this.isValid = false;
dropdown.onchange = (function(){ _this.validate(); });
}
}
},

textFieldError: function(input) {
input.className = 'required invalid';
input.placeholder = input.getAttribute('data-required-field');
},

removeTextFieldError: function(input) {
input.className = 'required';
input.placeholder = '';
},

onSelectCallback: function(input) {
if (typeof Widget === 'undefined' || !Widget.BasicDropdown) return;

var dropdownEl = input.parentNode,
instances = Widget.BasicDropdown.instances,
_this = this;

for (var i = 0; i < instances.length; ++i) {
var instance = instances[i];
if (instance.wrapperEl === dropdownEl) {
instance.onSelect = function(){ _this.validate() };
}
}
},

updateFormAfterValidation: function() {
this.form.className = this.setFormClassName();
this.submit.value = this.submitButtonText();
this.submit.disabled = !this.isValid;
this.submit.className = this.isValid ? 'submit' : 'disabled';
},

setFormClassName: function() {
var name = this.form.className;

if (this.isValid) {
return name.replace(/\s?mimi_invalid/, '');
} else {
if (name.indexOf('mimi_invalid') === -1) {
return name += ' mimi_invalid';
} else {
return name;
}
}
},

submitButtonText: function() {
var invalidFields = document.querySelectorAll('.invalid'),
text;

if (this.isValid || !invalidFields) {
text = this.submit.getAttribute('data-default-text');
} else {
if (invalidFields.length || invalidFields[0].className.indexOf('checkgroup') === -1) {
text = this.submit.getAttribute('data-invalid-text');
} else {
text = this.submit.getAttribute('data-choose-list');
}
}
return text;
},

submitForm: function() {
this.formSubmitting();

var _this = this;
window[this.callbackName] = function(response) {
delete window[this.callbackName];
document.body.removeChild(script);
_this.onSubmitCallback(response);
};

var script = document.createElement('script');
script.src = this.formUrl('json');
document.body.appendChild(script);
},

formUrl: function(format) {
var action = this.form.action;
if (format === 'json') action += '.json';
return action + '?callback=' + this.callbackName + '&' + serialize(this.form);
},

formSubmitting: function() {
this.form.className += ' mimi_submitting';
this.submit.value = this.submit.getAttribute('data-submitting-text');
this.submit.disabled = true;
this.submit.className = 'disabled';
},

onSubmitCallback: function(response) {
if (response.success) {
this.onSubmitSuccess(response.result);
} else {
top.location.href = this.formUrl('html');
}
},

onSubmitSuccess: function(result) {
if (result.has_redirect) {
top.location.href = result.redirect;
} else if(result.single_opt_in || !result.confirmation_html) {
this.disableForm();
this.updateSubmitButtonText(this.submit.getAttribute('data-thanks'));
} else {
this.showConfirmationText(result.confirmation_html);
}
},

showConfirmationText: function(html) {
var fields = this.form.querySelectorAll('.mimi_field');

for (var i = 0; i < fields.length; ++i) {
fields[i].style['display'] = 'none';
}

(this.form.querySelectorAll('fieldset')[0] || this.form).innerHTML = html;
},

disableForm: function() {
var elements = this.form.elements;
for (var i = 0; i < elements.length; ++i) {
elements[i].disabled = true;
}
},

updateSubmitButtonText: function(text) {
this.submit.value = text;
},

revalidateOnChange: function() {
var fields = this.form.querySelectorAll(".mimi_field.required"),
_this = this;

var onTextFieldChange = function() {
if (this.getAttribute('name') === 'signup[email]') {
if (_this.validEmail.test(this.value)) _this.validate();
} else {
if (this.value.length === 1) _this.validate();
}
}

for (var i = 0; i < fields.length; ++i) {
var inputs = fields[i].getElementsByTagName('input');
for (var j = 0; j < inputs.length; ++j) {
if (this.fieldType(fields[i]) === 'text_field') {
inputs[j].onkeyup = onTextFieldChange;
inputs[j].onchange = onTextFieldChange;
} else {
inputs[j].onchange = function(){ _this.validate() };
}
}
}
}
});

if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", function() {
new Mimi.Signups.EmbedValidation();
});
}
else {
window.attachEvent('onload', function() {
new Mimi.Signups.EmbedValidation();
});
}
})(this);

 

Your information will only be used to give you access to the report unless you also opt in to hear from Insider Trends and/or Red Ant, in which case we will also use your details to send you company updates, marketing and newsletters. You are under no obligation to do so and you can unsubscribe at any time.

Insider Trends and Red Ant take your privacy seriously.

You can find out how we use and protect your data in full here: