Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 30 March 2021

Zoomin raises $52M to help companies turn disparate product content into useful customer support data

User guides, knowledge articles and community discussions form a detailed, yet very fragmented, landscape of information about a company and its products. Today, a company that’s built a platform both to organize that data, and help those who need it to tap into it more effectively, is announcing a round of funding that underscores the demand it’s seeing in the market for its technology.

Zoomin, an Israeli startup that uses machine learning, natural language processing and some big data magic to help companies build self-service experiences that bring together information and answers pulled from all of the content that’s being generated by customers and the company itself across various channels, has picked up $52 million in a Series C led by General Atlantic, with previous backers Bessemer Venture Partners, Salesforce Ventures and Viola Growth also participating. The company is not disclosing the valuation.

Zoomin will be using the money to continue building out the functionality of its product and to double down on new customer segments.

Originally targeting tech companies and the needs of business end users — early customers included Dell and McAfee, among others — it’s found some interesting growth into other sectors like the food industry, where customers include Burger King, Tim Hortons, and Popeyes, because, as CEO and co-founder Gal Oron describes it, “your typical fast food company has a lot of franchises, and they use a lot of operating manuals. Just like ServiceNow or McAfee.”

It’s also moving into other sectors like finance and healthcare, he added, and expanding to more than just technical support, which in the B2B world is closely connected to sales support, and sales. That could see Zoomin building products that lay out the information in different ways too.

“Technical content is the new marketing,” Oron said. “Companies invest millions in creating marketing material, but they have hundreds of thousands of pages of HTML with all the relevant details, and their customers are interested in technical stuff.”

Zoomin taps into “content” — the source of its answers — in real time wherever it is being made, and those are also typically the places where Zoomin-generated answers are being delivered, too. Documentation sites, customer service portals, support communities, product applications and anywhere that people are searching for help and chatting are also the typical sources of information that get fed into the Zoomin machine.

The financing underscores how much attention investors (and customers) are giving to business support software these days.

The pandemic led to a major shift in how many of us worked and interacted with services — many more people started to work remotely and carried out all of their everyday duties online. In terms of needing assistance when something isn’t going right, all of that has also shifted online, and has put an immense amount of pressure on the infrastructure that had been built to help with that.

Even at the best of times, customer support is in a tough place. It’s where users go when something isn’t working correctly or when they have another complaint, so even out of the starting gate, it can be a fraught interaction. And agents don’t have it much better at the other end, either. On top of the customers and their demands, they’re also typically working under time, cost, revenue and organizational constraints from the company itself, the classic scylla and charybdis scenario. Given all of that, and the particular circumstances of the last year, tools like Zoomin’s have come into the foreground for companies as one way to cope with all of that.

This round comes just three months after the startup came out of stealth with $21 million disclosed in funding since quietly opening for business in 2019. Oron said that the company has served 60.4 million answers to date to its customers (55 million in 2020): that volume grew 300% last year and its customer base doubled in the same period.

The company is banking on some bigger trends in the industry to see that growth continue. It notes that digital support channels — those site pages you visit that include either chatbots or intuitive search, dialogue boxes across the site, apps, and other places that don’t have live agents helping you — have grown in ubiquity, with some 60% of businesses projected to build self-service portals in the next 12 to 18 months. The proof is in the pudding, so to speak: Zoomin says that the product content that it helps surface can account for up to 70% of a company’s overall web traffic.

That brings up an interesting parallel between what Zoomin does and one of the major traffic controllers of modern times: the search engine. Google dominates how many of us use and discover things on the internet, and it’s been getting increasingly specific with the help that it provides to people, giving “answers” directly on search result pages — whether they are answers to questions, shopping suggestions, news, locations, videos, or any other number of end points.

Oron is quick to say that he has no interest in ever expanding what Zoomin does to make it a consumer-facing tool like Google’s, but it does highlight what a big and tricky problem information organization — or “knowledge orchestration”, as Zoomin refers to it — can be in our disjointed digital world, and the power of a company that can help bring order to that.

While Zoomin may not be interested in climbing the mountain that is competing with Google on its terms, it would be interesting to see how Google evolves its own work in site search, and whether that becomes a competitor on Zoomin’s terms. Zoomin’s terms are to get people to search on company sites themselves, not Google, for answers.

“The first place — a company’s site — is the right location,” Oron said.

Meanwhile, all of the “what ifs” show is that there is indeed a lot of potential here, one reason you’re seeing companies like Salesforce investing alongside the big financial backers.

“We are excited to be supporting Zoomin in this important step of their growth story through an investment that marks our third-ever partnership in the burgeoning Israeli tech market. At General Atlantic, we pride ourselves on identifying category builders and growth-oriented disruptors, and view Zoomin as a natural fit given those priorities,” said Alex Crisses, MD, Global Head of New Investment Sourcing and Co-Head of Emerging Growth at General Atlantic, in a statement.

“Having helped build the increasingly important field of knowledge orchestration from the ground up, Zoomin is providing much-needed value to large enterprises,” added Gary Reiner, a current General Atlantic Operating Partner and previous GE Chief Information Officer. “We look forward to partnering with and supporting Zoomin as they continue to innovate the way that customers experience crucial enterprise product content.”



from TechCrunch https://ift.tt/3dkVLec
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support