Whispir has Raised a $11.75 Million Series A Round for Accelerated International Growth

As reported in Anthill Magazine on 22 September 2016. More details can be found here.

Whispir, the market leader in the Communications-Apps-as-a-Service (CAaaS) industry, recently announced a funding round of $11.75 million.

Investors include Telstra Ventures, NSI Ventures, Rippledot Capital, private investors and Jeromy Wells, the CEO and co-founder of Whispir.

“Whispir underpins dynamic and powerful multi-channel communication for its clients. We have been impressed by the leading enterprises in our region and beyond that are already using it to deeply engage. NSI Ventures is very pleased to be on board as Jeromy, Andrew and the team further increase their global reach and extend their product beyond communications into intelligence and insights” commented Shane Chesson, Partner of NSI Ventures.

/** * helper function to take the form and * get back a js object with field/value mappings * ignoring submit fields and fields whose name we can't ascertain */ function serialize(form){ return Array.prototype.slice.call(form.elements) .filter(isInputElement) .filter(isNotSubmit) .filter(hasFieldName) .reduce(function(data, node, index) { data[getFieldName(node)] = node.value return data; }, {}); } /** * Check if this form element is of type input */ function isInputElement(node) { return node.tagName.toLowerCase() === 'input'; } /** * Check if this is a 'submit' input element */ function isNotSubmit(node) { return node.type !== 'submit'; } /** * Ensure field has a derived name */ function hasFieldName(node) { return getFieldName(node) !== 'unknown'; } /** * Attempt to ascertain "name" of field. * * they don't give inputs real `name` attributes, so * best guess is to hack around the element's label text, * falling back to the placeholder text. (their html is * not semantic and often labels erroneously reference * parent divs instead of sibling input elements) * * strip out the stars they show when validation fails * * if label is misplaced _and_ there's no placeholder, * this function is insufficient */ function getFieldName(input) { if (!input.labels.length) return input.placeholder || 'unknown'; var labelText = input.labels[0].textContent.trim(); return ~labelText.indexOf(' *') ? labelText.slice(0, labelText.indexOf(' *')) : labelText; } /** * Listen for form submissions and send identify * if you'd like an event too, just delete the '//' in the track line */ document.forms[0].addEventListener('submit', function(e) { analytics.identify(serialize(e.target)); // analytics.track('Submitted Form'); });