Warning: ksort() expects parameter 1 to be array, object given in /home/criemails/public_html/wp-content/plugins/bbpress/includes/core/template-functions.php on line 316

Warning: Cannot modify header information - headers already sent by (output started at /home/criemails/public_html/wp-content/plugins/bbpress/includes/core/template-functions.php:316) in /home/criemails/public_html/wp-includes/feed-rss2.php on line 8
CRI Emails http://criemails.com Next Level E-Mail Marketing Fri, 22 Sep 2017 12:00:00 +0000 en-US hourly 1 https://wordpress.org/?v=4.8.2 7 Examples of Email Signatures That Drive Conversions http://criemails.com/7-examples-of-email-signatures-that-drive-conversions/ http://criemails.com/7-examples-of-email-signatures-that-drive-conversions/#respond Fri, 22 Sep 2017 12:00:00 +0000 http://criemails.com/7-examples-of-email-signatures-that-drive-conversions/ Email is still the workhorse of digital marketing.

In fact, the number of emails sent and received per day total over 205 billion, according to The Radicati Group Email Statistics Report.

There are no other marketing channels as effective and efficient as email — but there still might be a use for email your team is overlooking: employee email. Your employees interact with prospective customers, current customers, job candidates, partners, vendors, and industry influencers daily on a personal, one-on-one basis — and they already have valuable, authentic relationships with these important contacts.

Employee email is an often overlooked owned channel marketers can take advantage of to distribute content (both externally and internally) and drive conversions. But how? Through the employee email signature.

It seems simple, but by pairing an on-brand signature with a clickable call-to-action banner in every employee email signature, teams can use email signature marketing to help fuel their broader company goals.

Let’s take a look at a few examples of conversion-optimized email signatures, so you can get started on creating your own.

7 Email Signatures That Drive Conversions

1) Promote an Upcoming Event or Conference

Email signature marketing can help event marketers drive more registrations, increase live stream attendance, and improve post-event follow up.

Whether it be a conference hosted by your company, third-party event, or even a dinner, a registration CTA in all employee email signatures can result in additional views, clicks, and registrations.

We all know how much time and energy it takes to put on a world-class event, why not use employee email to get the right people there?

image7-2.png

 

2) Share a New Ebook or Industry Report

The easiest way to provide consistent and meaningful value to a prospect or customer is to pass along helpful content. Each email interaction is an opportunity to do just this — and sharing thought leadership content helps build trust and establish credibility.

But how can you ensure everyone on the team is sharing your newest ebook or industry report in all of their sent emails without forcing it into the conversation? Include a bright and beautiful call-to-action under their email signature.

 

3) Get the Word Out About a Case Study

Your employees (most likely the sales team) are also emailing qualified prospects that are far into the sales cycle. These email recipients should learn how others are seeing ROI from your product or service.

To keep them engaged in your sales pipeline, share a case study, specific use case or testimonial and feature a customer the prospect can relate to or identify as a credible brand.

image5-2.png

 

4) Drive More Registrations to Your Next Webinar

Need a new way to drive registrations and attendance to your upcoming webinar? Including a subtle call-to-action in every sent email is a fast and easy way to get the word out. After the webinar airs, you can even switch the CTA to read “watch the recording” and link to the video.

image3-6.png

 

5) Let Customers Know About Product Offerings or Discounts

Your client success and service teams send thousands of emails to customers every year. They have the undivided attention of your most important audience, so use it as a way to promote an upcoming sale or can’t-miss discount. Don’t forget about new service offerings and pricing packages too.

image8-2.png

 

6) Convert Qualified Leads to Demos or Opportunities

How is your sales development team following up with marketing qualified leads? Beyond a few triggered emails and/or phone calls, 1:1 email is the most popular option.

Personalization is important in these emails, and including a CTA for the “next step” is even more crucial. Be helpful, educate your audience, and provide a way to lead them to the next stage.

image2-28.png

 

7) Incorporate Video to Engage With Your Audience

An average employee sends and receives 122 emails per day. Yet, some of these emails can be impersonal. How does your email differentiate from the 121 others?

We all know video is the most powerful form of content when it comes to building personal 1:1 connections, so why not use it in every email you send? Establishing a real human connection through typed words on a screen is difficult. However, if they’re able to see your face and maybe learn about your interests, you have a better chance of gaining their trust.

image6-3.png

Email Signatures Are Your Next Secret Weapon

Personalized and relevant content that is sent to the right audience leads to great things for your team — and the employee email signature can help! Create your own email signature today and see how HubSpot is helping deliver on this mission.


Source: Hub Spot

]]>
http://criemails.com/7-examples-of-email-signatures-that-drive-conversions/feed/ 0
You're Pregnant! Just Kidding. Here's the News You Missed This Week. http://criemails.com/youre-pregnant-just-kidding-heres-the-news-you-missed-this-week/ http://criemails.com/youre-pregnant-just-kidding-heres-the-news-you-missed-this-week/#respond Fri, 22 Sep 2017 11:00:00 +0000 http://criemails.com/youre-pregnant-just-kidding-heres-the-news-you-missed-this-week/ Sometimes, I wonder if the internet can be boiled down to a single sentiment: “Oops.”

That was certainly the underlying theme of some major news items this week, like the one our headline alludes to — more on that below.

After all, the digital landscape is a setting that can be described at once as a playground and a hellscape, where mistakes never really disappear (even if you quickly delete them, thanks to screen shots), contentious competition never ends, and consumers are often left wondering, “What the hell is going on? I just want a machine to read my schedule to me in the morning.”

This week — as with many others — was a busy one in the worlds of tech and marketing. Here’s what you missed.

It’s a Boy! Nope, It’s Just a Glitch From Amazon

If our headline freaked you out, you’re not alone: a yet-to-be-determined number of Amazon customers experienced a similar sentiment this week when they mistakenly received emails regarding phantom baby registries.

Last Tuesday, several Amazon customers reported receiving an email from the online merchant reading, “Someone great recently purchased a gift from your baby registry!” And while the internet typically can’t be used for a pregnancy test — unless you count Target’s 2012 public relations disaster after predicting a teen’s pregnancy by tracking her shopping habits — it still caused brief moments of panic among those who got the email.

There were some fears that the emails were a result of phishing attempts, but in the end, Amazon confirmed to TechCrunch that the emails were the result of a technical glitch, going on to send apology emails to the customers that received them. It’s not clear what exactly happened or what the the glitch entailed, but let this be a lesson to marketers: triple check your email workflows.

Among the panic, Twitter had quite a bit of fun with the error:

More Trouble for Targeted Ads

Following last week’s ProPublica revelation that Facebook was allowing advertisers to use anti-Semitic targeting criteria for promoted content, it was quickly discovered that Google and Twitter had similarly flawed advertising technology.

BuzzFeed was the first to discover that the Google allowed advertisers to use anti-Semitic and racially-charged search terms to target certain audiences, and soon after, the Daily Beast reported that Twitter allowed similar targeting criteria, which resulted in an audience of roughly 26.3 million users.

All three companies have since responded that they either have or are working to remove this criteria, with Facebook COO Sheryl Sandberg publishing a very lengthy, formal apology on Wednesday:

And More From Facebook

Yesterday, Facebook released an official statement on its plans to hand over important documents regarding the ads it sold to Russian organizations to Congress, as well as a second one with answers to several “hard questions” on what happened to cause something like that to happen in the first place.

The gravity of that move is one that cannot be emphasized enough. As Mike Isaac writes for the New York Times:

” … the move to work with the congressional committees underscored how far the social network has strayed from being a mere technology company and how it has increasingly had to deal with the unintended consequences of the tools it provides to reach the more than two billion people who use the site regularly.”

Shortly after those posts went live, Mark Zuckerberg delivered a live address on his own Page to address the efforts it would make moving forward to “protect the integrity of the democratic process.”

Some believe that this address, along with Sandberg’s statement form the previous day, is the first of many efforts by Facebook to proactively dodge federal regulation by staying one step ahead of congressional actions or attempts to curb what such channels and platforms can actually do. It’s even, perhaps, a defensive move, as the legality of the aforementioned ad sale remains in question.

Meanwhile, Twitter is also due to appear at a Senate Intelligence Committee briefing nxt week to further examine its own possible role in influencing the most recent U.S. presidential election.

The Uber-Alphabet Lawsuit Got Even Messier

Last week, we filled you in on the ongoing lawsuit between Uber and Alphabet, Inc company Waymo over proprietary self-driving technology. Since then, there have been a few key developments.

First, over the weekend, Alphabet requested that the trial be postponed after receiving crucial information that the court ordered Uber to turn over. Seeing that information, it seemed, made Waymo realize just how much was at stake with Uber being in possession of these materials, and needed more time to review all of the evidence supporting its case. Megan Rose Dickey of TechCrunch tweeted a key portion of its statement on the issue:

Uber, of course, objected to that request, charging that Alphabet is trying the delay the trial — December 5 is the proposed postponed date — not because of surmounting evidence, but because of a lack of it. The full opposition can be found here:

Opposition by Johana Bhuiyan on Scribd

That same judge also gave Uber permission to publicly disclose some of what Waymo is hoping to gain from the lawsuit: $2.6 billion for one stolen (allegedly) trade secret. But there are still eight other secrets that Waymo says to have been stolen by Uber, and no monetary figure has yet been assigned to them.

At this point, the trial is still set to begin on October 10, and recently-appointed Uber has a decision to make: whether or not he wants to settle out of court, or continue to defend the company’s name in what promises to be a complex, drawn-out trial.

It’s just one of many problems for Uber these days. With the release of iOS 11 this week, Uber was forced to allow users to block the app from tracking their locations.

Additionally, the BBC broke news this morning that Transport for London would not renew the ride-sharing app’s private hire license, calling it “not fit and proper” to carry on operations there. Uber has 21 days to dispute that decision and can continue providing services in London until then.

Attack of the Flying Eggplants

I’ll admit it — my new favorite feature of iOS 11, the latest operating system available on the iPhone, is probably the ability to fill your iMessage recipient’s screen with the next, image, or emoji of your choice. But just for the sake of due diligence, I tested it by sending this gem to one of my colleagues:

But my low bar for amusement aside, the new operating system comes with some features that are actually, you know, productive. Here are our five favorites:

  1. Screen Recording. So, just how did I capture the magical moment above? iOS 11 has a screen record tool that saves the video in your camera roll.
  2. Do Not Disturb While Driving. This “do not disturb” feature uses your car’s bluetooth connection to turn on automatically while you’re driving.
  3. Screenshot Tools. The new iOS has a brilliantly simple new screenshot feature, which lets users draw on, crop, or highlight with ease.
  4. GIFs in Camera Roll. The camera roll now allows users to save and view GIFs, plus the newest editing tools even enable you to turn your live photos into GIFs.
  5. Notes App Upgrade. The notes app now features useful tools like a document scanner, and the ability to insert all kinds of formatting into your note.

And, finally — we can’t forget ARKit — Apple’s mobile augmented reality technology — which has been a big portion of the talk of the iPhone town in the days following iOS 11’s release. I tweeted about my experience with using it on Wayfair’s home shopping app:

What’s Google Up To?

A lot happened for the search giant this week, beyond its parent company’s lawsuit and a significant team acquisition. First, there were some leaks around the rumored October 4th release of the Pixel 2 and Pixel XL, but they were mostly limited to the device’s available colors, as per Droid Life.

That same outlet also leaked the rumored Google Home Mini, a much smaller version of the Google Home, which many are calling the company’s response to the Echo Dot. And on Tuesday, a “media streaming device” — the same language used to describe the original Google home — with features remarkably similar to the first Google Home was submitted to the FCC. These developments all align with the timeline leading up to the October 4th press event.

Source: Droid Life

In non-Pixel or Home news, Google announced four new features this week:

  1. The Google app on iOS will now have a suggested content feature, in which users are provided with visual links to more information on what they’re reading about.eoc_4_5mb_VslXrRA
    Source: Google
  2. Contact information like phone numbers, addresses, and email addresses will now — finally — be automatically converted into hyperlinks on Gmail. Official announcement here.
    image2-29
    Source: Google
  3. Natural language processing has been added to Cloud Search — a search tool within G Suite — to help users more quickly find information based on the words that Google deemed to be the most frequently used among G Suite customers: “what,” “who,” “how” or “when.” For example, if you remember which one of your colleagues sent you a shared document, but can’t remember what it was called, now you can search for it with a query like, “Docs shared by Karla.”
    NLQA-Blog_1_1_KauuCTQ
    Source:
    Google
  4. Read receipts are coming to Gmail — kind of. On Wednesday, Google announced the launch of Email Log Search, which allows G Suite users to track the status of sent emails, such as where it is (e.g., the trash), or if it’s been opened.
    Post Delivery Message Details
    Source: Google

Actually, No, Equifax Still Isn’t Handling This Data Breach Well

Remember all of those marketing takeaways from the Equifax hack that we outlined last week? Well, it turns out that Equifax hasn’t exactly heeded that advice — or that of too many others, it seems. In fact, it was revealed earlier this week that the company’s customer service agents on Twitter were directing customers to a fake website that, visually, was nearly identical to the site Equifax set up for users to enroll in free credit marketing.

The clone site was created by by software engineer Nick Sweeting, whose intentions weren’t malicious, but rather, were to show how poorly Equifax was monitoring and managing the situation.

Sweeting was quite transparent about that in creating the site, which has since been taken down, along with any tweets directing customers to it — it was titled, “Cybersecurity Incident & Important Consumer Information Which is Totally Fake, Why Did Equifax Use A Domain That’s So Easily Impersonated By Phishing Sites?”

The “fake” site did not collect any personal information, but Sweeting pointed out how easily it would be for other hackers to create an equally identical site that did using the Linux command “wget” — and he blamed that on Equifax’s choice to establish an entirely new domain, rather than create an equifax.com subdomain.

“wget” essentially permits anyone — yes, anyone at all — “to just suck their whole site down with wget and throw it on a … server,” Sweeting explained in an email to the New York Times. His version, he said, had “the same type of SSL certificate as the real version, so from a trust perspective, there’s no way for users to authenticate the real one vs. my server.”

Creating a subdomain should have been the obvious move for Equifax, Carnegie Mellon IS Professor Rahul Telang told the outlet, “so that if somebody tries to fake it, it becomes immediately obvious.”

This development comes amid news that Equifax actually suffered more than one hack this year. In addition to the headline-making breach in July, the company experienced an earlier one in March, creating even more confusion around the decision to wait until September to alert customers, as well as the massive August stock sale by its executives.

Odds and Ends

I Don’t Want to Grow up, Because That Means I Have to File for Chapter 11

For anyone who grew up begging their parents to take them to the toy store, this week came with some sad news: Toy store chain Toys ‘R’ Us filed for Chapter 11 bankruptcy protection this week. Many were quick to blame its demise on Amazon, which has been named the culprit for the financial woes of many other brick-and-mortar retailers, but in reality, the cause may have reached far beyond that. As Recode reports, the move is largely the result of a “cocktail” of limited product selection, a lack of competitive pricing, and piling debt after several 2005 buyouts.

For the sake of our own childhood memories, we hope Toys ‘R’ Us is able to turn things around.

The DHS Got Served … By an Association of VCs

Allow us to introduce you to the International Entrepreneur Rule: a federal measure that, had it passed in July 2017 as planned, would have made it easier for foreign entrepreneurs to obtain visas for the purpose of founding startups in the U.S.

However, the same month it was slated to be effective, the current presidential administration delayed it until March 2018, with many believing that it will only go on to be completely dismantled. But this week, Axios reports, the National Venture Capital Association (NVCA) has brought forth a lawsuit against the Department of Homeland Security, on the grounds that the decision to delay the enforcement of the rule violates the Administrative Procedure Act — which says that the department must first “solicit public comment.”

The formal complaint can be downloaded here.

No Empty Nest Here

Nest, which was acquired by Google back in 2013, held its first major press event this week, where it unveiled a number of new products. Among them were the Nest Cam IQ — this writer’s personal favorite unveiling from the launch — an outdoor security camera that can detect movement and differentiate whether it’s coming from a person or an object. If it’s a person, the system alerts you, as well as letting you know if it senses a barking dog or a talking person. Even better: it’s equipped with facial recognition, so that if someone familiar comes into the camera’s range, like your regular dog walker, the system will recognize that it’s likely not an intruder.

Also announced was the Nest Hello video doorbell, which uses similar camera technology to the above to alert users if a person is within range, even if they don’t ring. Finally, an overall comprehensive security system was unveiled called Nest Secure, which exists of three key components: Nest Guard, where the system is armed and disarmed with the second component, Nest Tag, which is similar to a key fob and can be used to turn off the alarm system. The first piece is Nest Detect, which can sense general motion and the opening or closing of windows or doors.

Check out the video summary here:

That’s all for this week! Next week, we’re off to INBOUND 2017: one of the world’s largest and most remarkable marketing and sales industry events. We’ll be back with our regular news coverage the first week in October.

Until then — happy autumn.


Source: Hub Spot

]]>
http://criemails.com/youre-pregnant-just-kidding-heres-the-news-you-missed-this-week/feed/ 0
Why 2017 Is the Year of Bots [Video] http://criemails.com/why-2017-is-the-year-of-bots-video/ http://criemails.com/why-2017-is-the-year-of-bots-video/#respond Fri, 22 Sep 2017 10:00:00 +0000 http://criemails.com/why-2017-is-the-year-of-bots-video/ Last week, while I was using a website’s chat feature to get some much-needed customer service, I realized something shocking:

I couldn’t tell if I was chatting with a human or a bot.

Before 2017, my notion of bots — and chatbots, specifically — was that they could only provide canned, basic responses before escalating to a human being. In short, I thought chatbots seemed, well, robotic, and they couldn’t get me the help I needed with a human touch.

Now, of course, I know that chatbots are the future of marketing, and you might feel the same. More brands have started using chatbots for marketing, sales, and customer service — and these are just a few examples.

If you’re wondering why bots are proliferating so rapidly — and how they’ve advanced to the point where we can’t differentiate their capabilities from those of humans — watch our chat with Motion AI CEO David Nelson above. He sat down and chatted with my colleague, Jami Oetting, about how bots have grown so significantly this year and why businesses should consider implementing a bot strategy of their own.

Why 2017 Is the Year of Bots

1) Natural language understanding has progressed.

Remember my story earlier?

The progression of natural language understanding has made chatbots more human than ever, making 2017 an ideal time to deploy a chatbot to answer questions and provide information.

2) Customer service expectations have changed.

It’s harder than ever to keep customers happy. And that’s because they have more options than ever (from your competition), and they want assistance made for the 21st century — instead of having to wait on hold for hours and repeat their information over and over.

Now, bots can perceive context and use data to give people the relevant information they need, and customers are more willing to interact with bots that give them the help they need — they’re fast, efficient, and just as helpful when they need assistance, on any channel.

3) Chatbots can make your job easier.

Bots can now answer frequently-asked questions, qualify new leads, and even distribute content. Here on the HubSpot Blog, we’re using a Facebook Messenger bot to help readers subscribe and read blog posts like these. Bots can automate processes humans have to do over and over again — saving time and valuable resources.

4) Chatbots can use data you already have to personalize your marketing.

The key to good marketing content is personalization. Bots can help you mine and analyze data you’ve already collected about prospects and customers to send them more customized emails and to have helpful context on calls.

5) Chatbots are easier than ever to create and deploy.

With help from industry leaders like Motion AI, you don’t have to try to demystify bots on your own — it’s easy to create and deploy bots anywhere on your site to help achieve your goals.

Editor’s note: HubSpot has acquired Motion AI, which enables everyone (developer or not) to build bots. Learn more here: HubSpot Acquires Motion AI.

battle-bots


Source: Hub Spot

]]>
http://criemails.com/why-2017-is-the-year-of-bots-video/feed/ 0
10 Things that DO NOT (Directly) Affect Your Google Rankings – Whiteboard Friday http://criemails.com/10-things-that-do-not-directly-affect-your-google-rankings-whiteboard-friday/ http://criemails.com/10-things-that-do-not-directly-affect-your-google-rankings-whiteboard-friday/#respond Fri, 22 Sep 2017 00:05:00 +0000 http://criemails.com/10-things-that-do-not-directly-affect-your-google-rankings-whiteboard-friday/ Posted by randfish

What do the age of your site, your headline H1/H2 preference, bounce rate, and shared hosting all have in common? You might’ve gotten a hint from the title: not a single one of them directly affects your Google rankings. In this rather comforting Whiteboard Friday, Rand lists out ten factors commonly thought to influence your rankings that Google simply doesn’t care about.

10 Things that do not affect your Google rankings

Click on the whiteboard image above to open a high-resolution version in a new tab!

<span id=”selection-marker-1″ class=”redactor-selection-marker” data-verified=”redactor”></span><span id=”selection-marker-1″ class=”redactor-selection-marker” data-verified=”redactor”></span>

Video Transcription

Howdy, Moz fans, and welcome to another edition of Whiteboard Friday. This week we’re going to chat about things that do not affect your Google rankings.

So it turns out lots of people have this idea that anything and everything that you do with your website or on the web could have an impact. Well, some things have an indirect impact and maybe even a few of these do. I’ll talk through those. But tons and tons of things that you do don’t directly affect your Google rankings. So I’ll try and walk through some of these that I’ve heard or seen questions about, especially in the recent past.

1. The age of your website.

First one, longstanding debate: the age of your website. Does Google care if you registered your site in 1998 or 2008 or 2016? No, they don’t care at all. They only care the degree to which your content actually helps people and that you have links and authority signals and those kinds of things. Granted, it is true there’s correlation going in this direction. If you started a site in 1998 and it’s still going strong today, chances are good that you’ve built up lots of links and authority and equity and all these kinds of signals that Google does care about.

But maybe you’ve just had a very successful first two years, and you only registered your site in 2015, and you’ve built up all those same signals. Google is actually probably going to reward that site even more, because it’s built up the same authority and influence in a very small period of time versus a much longer one.

2. Whether you do or don’t use Google apps and services.

So people worry that, “Oh, wait a minute. Can’t Google sort of monitor what’s going on with my Google Analytics account and see all my data there and AdSense? What if they can look inside Gmail or Google Docs?”

Google, first off, the engineers who work on these products and the engineers who work on search, most of them would quit right that day if they discovered that Google was peering into your Gmail account to discover that you had been buying shady links or that you didn’t look as authoritative as you really were on the web or these kinds of things. So don’t fear the use of these or the decision not to use them will hurt or harm your rankings in Google web search in any way. It won’t.

3. Likes, shares, plus-ones, tweet counts of your web pages.

So you have a Facebook counter on there, and it shows that you have 17,000 shares on that page. Wow, that’s a lot of shares. Does Google care? No, they don’t care at all. In fact, they’re not even looking at that or using it. But what if it turns out that many of those people who shared it on Facebook also did other activities that resulted in lots of browser activity and search activity, click-through activity, increased branding, lower pogo-sticking rates, brand preference for you in the search results, and links? Well, Google does care about a lot of those things. So indirectly, this can have an impact. Directly, no. Should you buy 10,000 Facebook shares? No, you should not.

4. What about raw bounce rate or time on site?

Well, this is sort of an interesting one. Let’s say you have a time on site of two minutes, and you look at your industry averages, your benchmarks, maybe via Google Analytics if you’ve opted in to sharing there, and you see that your industry benchmarks are actually lower than average. Is that going to hurt you in Google web search? Not necessarily. It could be the case that those visitors are coming from elsewhere. It could be the case that you are actually serving up a faster-loading site and you’re getting people to the information that they need more quickly, and so their time on site is slightly lower or maybe even their bounce rate is higher.

But so long as pogo-sticking type of activity, people bouncing back to the search results and choosing a different result because you didn’t actually answer their query, so long as that remains fine, you’re not in trouble here. So raw bounce rate, raw time on site, I wouldn’t worry too much about that.

5. The tech under your site’s hood.

Are you using certain JavaScript libraries like Node or React, one is Facebook, one is Google. If you use Facebook’s, does Google give you a hard time about it? No. Facebook might, due to patent issues, but anyway we won’t worry about that. .NET or what if you’re coding up things in raw HTML still? Just fine. It doesn’t matter. If Google can crawl each of these URLs and see the unique content on there and the content that Google sees and the content visitors see is the same, they don’t care what’s being used under the hood to deliver that to the browser.

6. Having or not having a knowledge panel on the right-hand side of the search results.

Sometimes you get that knowledge panel, and it shows around the web and some information sometimes from Wikipedia. What about site links, where you search for your brand name and you get branded site links? The first few sets of results are all from your own website, and they’re sort of indented. Does that impact your rankings? No, it does not. It doesn’t impact your rankings for any other search query anyway.

It could be that showing up here and it probably is that showing up here means you’re going to get a lot more of these clicks, a higher share of those clicks, and it’s a good thing. But does this impact your rankings for some other totally unbranded query to your site? No, it doesn’t at all. I wouldn’t stress too much. Over time, sites tend to build up site links and knowledge panels as their brands become bigger and as they become better known and as they get more coverage around the web and online and offline. So this is not something to stress about.

7. What about using shared hosting or some of the inexpensive hosting options out there?

Well, directly, this is not going to affect you unless it hurts load speed or up time. If it doesn’t hurt either of those things and they’re just as good as they were before or as they would be if you were paying more or using solo hosting, you’re just fine. Don’t worry about it.

8. Use of defaults that Google already assumes.

So when Google crawls a site, when they come to a site, if you don’t have a robots.txt file, or you have a robots.txt file but it doesn’t include any exclusions, any disallows, or they reach a page and it has no meta robots tag, they’re just going to assume that they get to crawl everything and that they should follow all the links.

Using things like the meta robots “index, follow” or using, on an individual link, a rel=follow inside the href tag, or in your robots.txt file specifying that Google can crawl everything, doesn’t boost anything. They just assume all those things by default. Using them in these places, saying yes, you can do the default thing, doesn’t give you any special benefit. It doesn’t hurt you, but it gives you no benefit. Google just doesn’t care.

9. Characters that you use as separators in your title element.

So the page title element sits in the header of a document, and it could be something like your brand name and then a separator and some words and phrases after it, or the other way around, words and phrases, separator, the brand name. Does it matter if that separator is the pipe bar or a hyphen or a colon or any other special character that you would like to use? No, Google does not care. You don’t need to worry about it. This is a personal preference issue.

Now, maybe you’ve found that one of these characters has a slightly better click-through rate and preference than another one. If you’ve found that, great. We have not seen one broadly on the web. Some people will say they particularly like the pipe over the hyphen. I don’t think it matters too much. I think it’s up to you.

10. What about using headlines and the H1, H2, H3 tags?

Well, I’ve heard this said: If you put your headline inside an H2 rather than an H1, Google will consider it a little less important. No, that is definitely not true. In fact, I’m not even sure the degree to which Google cares at all whether you use H1s or H2s or H3s, or whether they just look at the content and they say, “Well, this one is big and at the top and bold. That must be the headline, and that’s how we’re going to treat it. This one is lower down and smaller. We’re going to say that’s probably a sub-header.”

Whether you use an H5 or an H2 or an H3, that is your CSS on your site and up to you and your designers. It is still best practices in HTML to make sure that the headline, the biggest one is the H1. I would do that for design purposes and for having nice clean HTML and CSS, but I wouldn’t stress about it from Google’s perspective. If your designers tell you, “Hey, we can’t get that headline in H1. We’ve got to use the H2 because of how our style sheets are formatted.” Fine. No big deal. Don’t stress.

Normally on Whiteboard Friday, we would end right here. But today, I’d like to ask. These 10 are only the tip of the iceberg. So if you have others that you’ve seen people say, “Oh, wait a minute, is this a Google ranking factor?” and you think to yourself, “Ah, jeez, no, that’s not a ranking factor,” go ahead and leave them in the comments. We’d love to see them there and chat through and list all the different non-Google ranking factors.

Thanks, everyone. See you again next week for another edition of Whiteboard Friday. Take care.

Video transcription by Speechpad.com

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!


Source: Moz Blog

]]>
http://criemails.com/10-things-that-do-not-directly-affect-your-google-rankings-whiteboard-friday/feed/ 0
Google Acquired a Team From HTC and It Surprised No One http://criemails.com/google-acquired-a-team-from-htc-and-it-surprised-no-one/ http://criemails.com/google-acquired-a-team-from-htc-and-it-surprised-no-one/#respond Thu, 21 Sep 2017 13:37:06 +0000 https://criemails.com/google-acquired-a-team-from-htc-and-it-surprised-no-one/ Late last night — at least, here on the East Coast — a formal announcement was made that, if you’re as obsessed with the business of mobile as we are, didn’t exactly come as a surprise.

The word: Google had acquired a team from mobile electronics company HTC in a $1.1 billion deal.

When the Taiwan Stock Exchange opened at 9:00 AM local time, where HTC is headquartered, many suspected the announcement was coming. The company, which has been struggling with its valuation for quite a few years now, had already planned to freeze trading on Thursday, sparking rumors that some sort of major organizational move would take place.

Source: HTC

Finally, at 10:00 PM EDT, the announcement came on Google’s blog: The search giant had signed an “agreement with HTC, continuing our big bet on hardware.”

The announcement, penned by Google’s SVP of Hardware Rick Osterloh, explained that the acquired team would be joining primarily to work on the company’s Pixel devices. It’s just one of many announcements, confirmed or not, leading up to the major October 4 event where several products, including the Pixel 2, are slated to be announced.

Google’s relationship with HTC isn’t new, nor is its move to acquire a mobile electronics manufacturer — in 2012, it acquired Motorola, only to amass several financial losses and eventually sell the company to Lenovo for $9.6 billion less than it bought it for. As Osterloh said, representatives from both companies have been collaborating for 10 years, a partnership which in its earliest days resulted in the first-ever Android phone: the HTC Dream. While Google builds and owns the Android operating system technology, it’s largely used by non-Google mobile manufacturers, like Samsung and LG, where the search giant has very little, if any, creative license over how those companies use it.

Which is part of what makes this deal so interesting.

It’s been a long time since HTC was considered a leader in the world of mobile devices. It hit the market with flashy TV commercials and a “fresh face” in 2008, but since then has faced numerous operating losses resulting in budget cuts that caused a blow to its research and development. In 2016, it managed to catch up a bit in the VR market with its Vive headset, over which HTC will retain control even with the Google deal. 

All of that, to us, suggests two main implications from the deal. First, on the mobile device side, both Google and HTC stand to benefit. HTC will receive financial assets in the form of the deal’s monetary value, while Google can boast the growing buildout its mobile hardware team. It also moves the spotlight back onto HTC’s mobile innovation, especially at a time when Google is making headlines leading up to its October event. If Google is enlisting the help of HTC employees, one might say, then the latter must be doing something right.

It’s an interesting move on the heels of Apple’s many product announcements earlier this month, notably the launch of the latest generations of iPhones, including the iPhone X priced at $999. While the feedback on the first Pixel edition was largely positive, it hasn’t exactly garnered quite as much buzz as Apple or Samsung devices since its release. That raises the stakes for Google — will it be able to beat Apple’s latest mobile photography, user recognition, and AR features, and at a more competitive price?

Aha — note that last part about AR. Well, that’s where things really get twisted.

Despite the fact that HTC will retain control of its Vive VR properties, keep in mind that, as per the deal’s terms, Google will gain some non-exclusive licensing of HTC’s IP. It begs the question of whether this team acquisition will somehow play into Google’s potential attempts to compete with Apple on the mobile VR/AR front.

Source: HTC

Google has already been manufacturing its own VR headsets for quite some time now, with products ranging from the extremely affordable Cardboard to the $79 Daydream View. In fact, on the morning leading up to the official HTC deal announcement, Google published a design-focused post on its blog regarding the “best practices [of] creating art assets for VR.”

Source: Google

But both of these devices require VR-ready phones for a full experience — compare that to the $599 Vive, which comes with built-in hardware. The whole thing leaves us wondering if Google will “pull an Apple,” and create standalone AR experiences that don’t require additional gear.

In the weeks following Google’s October 4th event, we’ll be heading to both Oculus Connect and the Samsung Developer Conference, where we predict there will be talk — and perhaps even contention over — various VR and AR platforms. Where Google’s headsets and the Vive will specifically come into play is yet to be determined, and it will be nothing if not intriguing to hear developers’ perspectives on the deal’s implications and chain reaction.

Whatever they are — we’ll keep you posted.

Featured image source: Google


Source: Hub Spot

]]>
http://criemails.com/google-acquired-a-team-from-htc-and-it-surprised-no-one/feed/ 0
Should You Even Bother With Bots? An Expert Weighs In [Video] http://criemails.com/should-you-even-bother-with-bots-an-expert-weighs-in-video/ http://criemails.com/should-you-even-bother-with-bots-an-expert-weighs-in-video/#respond Thu, 21 Sep 2017 10:00:00 +0000 https://criemails.com/should-you-even-bother-with-bots-an-expert-weighs-in-video/  

If you’re a human with internet access in 2017, you’ve probably talked to a bot recently — even if you weren’t fully aware of it.

With over five billion monthly active users on messaging platforms like Facebook Messenger and WhatsApp, the current tech landscape is set for a veritable explosion of chatbots and AI-based assistants over the next few years. And marketers should be racing to explore the potential power of this exciting new space — with some thoughtful restraint, of course.  

This isn’t the first time we’re talking about the importance of investing early in bots on the HubSpot Marketing Blog, but it’s one thing to recognize the potential of a new technology and quite another to start incorporating it into your exisiting business model.

Especially for businesses on the smaller side, pivoting towards a new strategy can feel like a terrifying leap. You’ve probably asked yourself: should I even bother with bots?

To learn more about practical use cases for bots, we turned to Vedant Misra, the founder and CEO of Kemvi (an AI and machine learning startup recently aquired by HubSpot), and current artificial intelligence tech lead here at HubSpot.

Check out the interview above, and decide for yourself: are bots the right next move for your business?

Editor’s note: HubSpot has acquired Motion AI, which enables everyone (developer or not) to build bots. Learn more here.

battle-bots

Source: Hub Spot

]]>
http://criemails.com/should-you-even-bother-with-bots-an-expert-weighs-in-video/feed/ 0
How to Prioritize SEO Tasks [+Worksheet] http://criemails.com/how-to-prioritize-seo-tasks-worksheet/ http://criemails.com/how-to-prioritize-seo-tasks-worksheet/#respond Thu, 21 Sep 2017 00:07:00 +0000 https://criemails.com/how-to-prioritize-seo-tasks-worksheet/ Posted by BritneyMuller

“Where should a company start [with SEO]?” asked an attendee after my AMA Conference talk.

As my mind spun into a million different directions and I struggled to form complete sentences, I asked for a more specific website example. A healthy discussion ensued after more direction was provided, but these “Where do I start?” questions occur all the time in digital marketing.

SEOs especially are in a constant state of overwhelmed-ness (is that a word?), but no one likes to talk about this. It’s not comfortable to discuss the thousands of errors that came back after a recent site crawl. It’s not fun to discuss the drop in organic traffic that you can’t explain. It’s not possible to stay on top of every single news update, international change, case study, tool, etc. It’s exhausting and without a strategic plan of attack, you’ll find yourself in the weeds.

I’ve performed strategic SEO now for both clients and in-house marketing teams, and the following five methods have played a critical role in keeping my head above water.

First, I had to source this question on Twitter:

Here was some of the best feedback from true industry leaders:

Screen Shot 2017-09-20 at 1.59.39 PM.png

Murat made a solid distinction between working with an SMBs versus a large companies:

Screen Shot 2017-09-20 at 2.03.26 PM.png

This is sad, but so true (thanks, Jeff!):

Screen Shot 2017-09-20 at 2.00.16 PM.png

To help you get started, I put together an SEO prioritization worksheet in Google Sheets. Make yourself a copy (File > Make a copy) and go wild!:

Free SEO prioritization workflow sheet

TLDR;

  1. Agree upon & set specific goals
  2. Identify important pages for conversions
  3. Perform a site crawl to uncover technical opportunities
  4. Employ Covey’s time management grid
  5. Provide consistent benchmarks and reports

#1 Start with the end in mind

What is the end goal? You can have multiple goals (both macro and micro), but establishing a specific primary end goal is critical.

The only way to agree upon an end goal is to have a strong understanding of your client’s business. I’ve always relied on these new client questions to help me wrap my head around a new client’s business.

[Please leave a comment if you have other favorite client questions!]

This not only helps you become way more strategic in your efforts, but also shows that you care.

Fun fact: I used to use an alias to sign up for my client’s medical consultations online to see what the process was like. What automated emails did they send after someone made an appointment? What are people required to bring into a consult? What is a consult like? How does a consult make someone feel?

Clients were always disappointed when I arrived for the in-person consult, but happy that my team and I were doing our research!

Goal setting tips:

Measurable

Seems obvious, but it’s essential to stay on track and set benchmarks along the way.

Be specific

Don’t let vague marketing jargon find its way into your goals. Be specific.

Share your goals

A study performed by Psychology professor Dr. Gail Matthews found that writing down and sharing your goals boosts your chances of achieving them.

Have a stretch goal

“Under-promise and over-deliver” is a great rule of thumb for clients, but setting private stretch goals (nearly impossible to achieve) can actually help you achieve more. Research found that when people set specific, challenging goals it led to higher performance 90% of the time.

#2 Identify important pages for conversions

There are a couple ways you can do this in Google Analytics.

Behavior Flow is a nice visualization for common page paths which deserve your attention, but it doesn’t display specific conversion paths very well.

Behavior flow google analytic report

It’s interesting to click on page destination goals to get a better idea of where people come into that page from and where they abandon it to:

behavior flow page path in google analytics

Reverse Goal Paths are a great way to discover which page funnels are the most successful for conversions and which could use a little more love:

Reverse goal path report in google analytics

If you want to know which pages have the most last-touch assists, create a Custom Report > Flat Table > Dimension: Goal Previous Step – 1 > Metric: Goal Completions > Save

Last touch page report in google analytics

Then you’ll see the raw data for your top last-touch pages:

Top pages report in Google Analytics

Side note: If the Marketing Services page is driving the second most assists, it’s a great idea to see where else on the site you can naturally weave in Marketing Services Page CTAs.

The idea here is to simply get an idea of which page funnels are working, which are not, and take these pages into high consideration when prioritizing SEO opportunities.

If you really want to become a conversion funnel ninja, check out this awesome Google Analytics Conversion Funnel Survival Guide by Kissmetrics.

#3 Crawl your site for issues

While many of us audit parts of a website by hand, we nearly all rely on a site crawl tool (or two) to uncover sneaky technical issues.

Some of my favorites:

I really like Moz Pro, DeepCrawl, and Raven for their automated re-crawling. I’m alerted anytime new issues arise (and they always do). Just last week, I got a Moz Pro email about these new pages that are now redirecting to a 4XX because we moved some Learning Center pages around and missed a few redirects (whoops!):

Screen Shot 2017-09-19 at 9.33.40 PM.png

An initial website crawl can be incredibly overwhelming and stressful. I get anxiety just thinking about a recent Moz site crawl: 54,995 pages with meta noindex, 60,995 pages without valid canonical, 41,234 without an <h1>… you get the idea. Ermahgerd!! Where do you start?!

This is where a time management grid comes in handy.

#4 Employ Covey’s time management grid

Screen Shot 2017-09-15 at 12.04.15 PM.png

Time management and prioritization is hard, and many of us fall into “Urgent” traps.

Putting out small, urgent SEO fires might feel effective in the short term, but you’ll often fall into productivity-killing rabbit holes. Don’t neglect the non-urgent important items!

Prioritize and set time aside for those non-urgent yet important tasks, like writing short, helpful, unique, click-enticing title tags for all primary pages.

Here’s an example of some SEO issues that fall into each of the above 4 categories:

Screen Shot 2017-09-15 at 12.03.55 PM.png

To help prioritize Not Urgent/Important issues for maximum effectiveness here at Moz, I’m scheduling time to address high-volume crawl errors.

Moz.com’s largest issues (highlighted by Moz Pro) are meta noindex. However, most of these are intentional.

Screen Shot 2017-06-16 at 2.41.12 PM.png

You also want to consider prioritizing any issues on the primary page flows that we discovered earlier. You can also sort issues by shallow crawl depth (fewer clicks from homepage, which are often primary pages to focus on):

Screen Shot 2017-09-15 at 12.44.50 PM.png

#5 Reporting & communication

Consistently reporting your efforts on increasing your client’s bottom line is critical for client longevity.

Develop a custom SEO reporting system that’s aligned with your client’s KPIs for every stage of your campaign. A great place to start is with a basic Google Analytics Custom Report that you can customize further for your client:

While traffic, search visibility, engagement, conversions, etc. get all of the reporting love, don’t forget about the not-so-tangible metrics. Are customers less frustrated navigating the new website? How does the new site navigation make a user feel? This type of monitoring and reporting can also be done through kickass tools like Lucky Orange or Mechanical Turk.

Lastly, reporting is really about communication and understanding people. Most of you have probably had a client who prefers a simple summary paragraph of your report, and that’s ok too.

Hopefully these tips can help you work smarter, not harder.

Image result for biker becomes a rocket gif

Don’t miss your site’s top technical SEO opportunities:

Crawl your site with Moz Pro

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!


Source: Moz Blog

]]>
http://criemails.com/how-to-prioritize-seo-tasks-worksheet/feed/ 0
Thanks Live Chat, Messaging Will Take It From Here http://criemails.com/thanks-live-chat-messaging-will-take-it-from-here/ http://criemails.com/thanks-live-chat-messaging-will-take-it-from-here/#respond Wed, 20 Sep 2017 12:00:00 +0000 http://criemails.com/thanks-live-chat-messaging-will-take-it-from-here/ Automation is a funny thing. Too little is the enemy of efficiency. Too much kills engagement.

Think about email. Automated email nurturing campaigns were the answer to individually following up with every single person who downloaded a piece of content from your website. In the name of efficiency, marketers queued up a series of emails via workflows to automatically deliver ever-more-helpful content and insights, gradually increasing the person’s trust in the company and stoking the flames of their buying intent. If at any time they had a question, they could respond to the email and get routed to a person who could help.

But as the number of inbound leads skyrocketed, this system became untenable. The dreaded noreply@company.com address was the solution for scalability. Over time, this set the expectation with buyers that marketers didn’t want to have a conversation with them via email.

Automation made us more efficient, but at the cost of relationships — ultimately defeating the purpose.

Then came live chat, and it felt like a revelation. Buyers were empowered to get answers to their questions in real time from a real person. Better yet, this interaction took place directly on the company’s website — where they were already doing their research.

We started using website chat at HubSpot in 2013. Over the past four years, live chat has facilitated countless conversations between curious prospects and our business. We even created our own live chat product — Messages — to help our customers adopt this model and serve their own prospects better, faster, and directly on the website.

But, just like what happened with email nurturing, at a certain point the system started to strain. According to our usage data, one in every 30 website visits results in a chat. For companies that receive thousands of website visits a day, trying to keep up is daunting.

And similar to how “noreply@company.com” frustrated buyers looking for information via email, customers are again the ones suffering when companies can’t manage the demands of live chat. Recent research found that 21% of live chat support requests go completely unanswered. Even if the buyer gets a response, they can expect to wait an average of 2 minutes and 40 seconds for it. I wouldn’t call this “live” — would you?

Responding slowly (or failing to respond at all) on a channel advertised as “live” is a contradiction in terms. Forcing customers to wait after we’ve set the expectation of immediacy is unacceptable. We can do better.

Today, we’re at the same inflection point we came to with email. What should companies do to accommodate the tidal wave of live chat conversations? Hiring an increasing number of chat coordinators clearly isn’t a scalable answer. But more importantly, apps like Facebook Messenger, WhatsApp, and Slack have changed consumers’ definition of a real time conversation (and also created the infrastructure to support them). If marketers are going to advertise “live” channels — and we must if we want to stay relevant — we need to step up and deliver.

It’s with this in mind that I assert the era of live chat is over. “Conversations” were once synonymous with website chat and incoming phone calls, but in the world of messaging apps and bots, the website is only one small piece of the puzzle. Buyers are thinking beyond the website, but most businesses aren’t.

Buyers’ New Expectations for Business Conversations

Website chat enabled buyers to have conversations with businesses like never before. It was a good start, but just that — a start. Similar to how inbound changed marketing, social changed content discovery and consumption, and conversational search changed SEO, messaging apps have changed how buyers expect to interact with businesses.

Why tether your prospects and customers to your website when they want to chat? Why force them to re-explain their question when they switch channels, or when chat coordinators switch shifts? Why make them wait until the next rep is available to get the information they need right now? This isn’t world-class marketing and customer service even today, and it’ll become even more archaic and frustrating in the years to come.

Think your buyers wouldn’t want to interact with your company via a messaging app? Actually, 71% of consumers globally are willing to use messaging apps to get customer assistance.

content-trends-1-2.png

Even if your prospects fall in the “none of the above” bucket today, they won’t forever. Cutting the data by age foretells the inevitability of messaging apps in a business context over time: The majority of consumers currently between the ages 18 and 34 are willing to use Facebook Messenger or WhatsApp to contact companies for assistance.

content-trends-2-2.png

When communicating with a business, today’s buyer expects that:

  • Conversations happen where they are. That might be the website, but it could also be social media, or Skype, or Slack, or a messaging app.
  • Conversations are portable. Regardless of where a conversation gets started, it should be able to be transferred to any other channel seamlessly. A thread kicked off on live chat should be able to be passed to Facebook Messenger or email without data loss or crossed wires.
  • Conversations have context. Context shouldn’t leave with the person who fielded the initial inquiry. All of a customer or prospect’s historical interactions and information should be attached to a common record which populates instantaneously.

We need new technology paired with automation to live up to our buyers’ expectations and make these types of conversations a reality. On the technology side, live website chat is part of a conversation strategy, sure, but it can’t be the whole strategy. As for automation, marketers got it wrong with email, but we have the opportunity to get it right with chat.

Stop Chatting, Start Having Conversations

At HubSpot, we’ve always been about helping marketers and salespeople adapt to the ever-changing modern buyer. It’s time, once again, to step up and serve our prospects and customers the way they expect — and deserve — to be served.

Fortunately, this is possible today with the right strategy. Businesses need to do the following three things to enable truly valuable conversations at scale:

1) Make it possible for buyers to have conversations with your business where they are.

Create a presence on website chat, messaging apps, social media — wherever your prospects might want to talk.

2) Add an automation layer with chatbots.

Set up bots that immediately respond on each channel (or even proactively kick off the conversation) and are equipped to answer common questions. This eliminates customers’ wait time and provides immediate responses for the majority of queries. Bots put the “live” in “live chat.”

3) Adopt technology that helps bots and human service reps to “tag team.”

When a complex question arises, the right technology can loop in a human chat coordinator, and provide a unified record of everything that’s happened in this interaction as well as the customer’s entire history. This way, the context never gets left behind in the handoff between bot and human, or the switch from one communication channel to another.

Marketing automation used to solely refer to workflows + drip email campaigns. Today, it’s much more than that. The new marketing automation is conversational technology + bots. This is automation that makes us more efficient, but more importantly, more effective for our customers. This is automation that creates relationships instead of frustration.

Today, we announced HubSpot’s acquisition of motion.ai — a platform that enables anyone to build and deploy bots across any messaging channel. With this acquisition, we not only hope to enable marketers, salespeople, and service folks to serve their customers better, faster, and with more context than ever before, but we also intend to create the “all in one” experience our customers have come to rely on.

The only constant in business and consumer behavior today is change — which I know firsthand can feel overwhelming. But you’re not in it alone. As your customers change, HubSpot empowers you to adapt to and surpass their expectations. As your business grows, we grow with you. And when new technology emerges, we build it into the growth stack so you can stay ahead of the curve without the headache of wrangling countless disparate apps.

Live chat is the standard today, but I think we should aspire to do better for our buyers. Now I want to hear from you. Do you think live chat in its current manifestation is dead? Is your company prepared to meet the expectations of today’s buyers, and the buyers of tomorrow?

Send HubSpot a note on Facebook Messenger. Tell me what you think the future of communication between buyers and businesses should be.

Let’s have a conversation.

New Call-to-action


Source: Hub Spot

]]>
http://criemails.com/thanks-live-chat-messaging-will-take-it-from-here/feed/ 0
How to Ask for a Promotion (and Have Other Tough Conversations With Your Boss) http://criemails.com/how-to-ask-for-a-promotion-and-have-other-tough-conversations-with-your-boss/ http://criemails.com/how-to-ask-for-a-promotion-and-have-other-tough-conversations-with-your-boss/#respond Wed, 20 Sep 2017 12:00:00 +0000 http://criemails.com/how-to-ask-for-a-promotion-and-have-other-tough-conversations-with-your-boss/ Last year, my colleagues launched a tool called The Next Five to help people navigate through those times in their career where they’re feeling kind of stuck. You know — when you’re just not sure what the next step is on your career path.

And while many of us think about this stuff from time to time — and maybe even practice the speeches to go with them in the shower or in the car — I don’t think we often verbalize our thoughts on where we want our career paths to go, if we even know ourselves.

So, we did a little research to see how often people are actually asking for promotions, or talking with their managers about the next steps in their career paths. It’s pretty hard to find a ton of hard data on it — if you know of any, please send it our way — but we did find this: The Bureau of Labor Statistics reports that the average tenure for today’s worker is 4.4 years. If you focus on just younger employees, that number halves.Download our leadership guide for actionable advice & guidelines from  HubSpot's Dharmesh Shah. 

What’s more, 91% of workers born between 1977 and 1997 report going into new jobs with the intent of staying less than three years.

While it sure seems like a jumpy career path is normal, there’s more to be said about the importance of these career discussions. After all, if your manager or employer yourself, which would you prefer: helping your team progress internally, or having them leave for what seems like a better opportunity elsewhere?

And if you’re looking to have this conversation with your boss, keep that question in mind. To help you get the conversation started, let’s take a closer look at why they matter and how you can get the most out of them.

Why Ask for a Promotion? Do Career Path Conversations Even Matter?

Some workplaces look at job-hopping as a phenomenon we just need to accept in this day and age. And they’re probably right … to an extent. I don’t think many industries should expect to return to a time when people stayed at companies for decades. But we might be able to find more longevity out of our roles than we do right now.

Quite frankly, job-hopping sucks for more than just the organization that has to rehire and retrain someone every couple years — it sucks for the employee, too. Yes, maybe they get promotions and raises — in fact, it’s not an uncommon way to make your way up the career ladder. But it also means taking a risk, adjusting to a new team and a new manager — possibly finding out one or both of those are a poor fit — and figuring out the nuances of a workplace and job that you could end up hating.

Worst case scenario? You end up out of work at the end of all that, and you’re back on the interview circuit.

So I think it behooves of all of us to have these conversations about what we want our career paths to look like with ourselves, and our managers. It helps us get closer to the work and life we want, and it helps clue our managers in on how to give it to us.

A Few Helpful Guidelines

Before we jump into the nitty-gritty of these conversations, let’s set some ground rules for how these conversations go. Keep these in mind before you launch a large-scale discussion about your career path.

  1. Think about your relationship with your boss. If you’re on good terms, great — chances are, the door is open and you can be candid about what you see for your career trajectory, or your confusion around it. The best managers are the ones who know how to create or find opportunities that combine your skills, interests, and challenges, so these are some things to outline before the conversation. However, if your relationship with your boss isn’t so splendid, or she’s just not in a decision-making position like this one, look higher. Figure out who the best person is to speak with, even if she works in a different department.
  2. Chat with colleagues who are changing roles. When someone on your team is leaving her role, knowing why can help you determine what you see for your own career path, and perhaps give considerations to possible changes that you didn’t otherwise think of. Plus, if she’s leaving a vacancy as a result, that might be an opportunity for you — find out what the true nature of the role is; then, determine the next steps for applying for it internally, if it’s a good fit.
  3. Be your own hiring manager. Many managers crave a sense of proactivity and the ability to solve problems independently from their teams. Remember what we said earlier about what makes a good manager? By figuring out some of these things yourself — like the types of opportunities that are a truly a strong combination of your skills and interests, as well as the team’s unmet needs — you might be able to create your own promotion and subsequent role. Explain why your idea checks off those boxes and meet with your team or boss to discuss it. But be sure to come prepared with a clear idea of what’s next, and how to plan to execute this development should it be approved.

What Elements Make Up an Effective Career Path Conversation?

I’m gonna put my money where my mouth is and talk about my own experiences with these conversations.

I’ve had career path conversations with many bosses — the last formal one was around March — but I’ve also held them with people on my team. Both have been awkward … sometimes. But both have been totally normal and non-cringe-inducing just as often.

When I look back at all those conversations at a macro-level, the good ones (whether they were about my career or my teammates’) all came down to three elements:

  • Relationship
  • Timing
  • Forethought

1) Relationship

Technically, this shouldn’t matter. You should be able to have productive career path conversations no matter the manager-employee relationship. But it would be naive to think the relationship you have with your boss doesn’t play into how well these conversations go. That’s not to say the closer you two are, the better the conversations go — sometimes the closer you are, the harder it is to have frank conversations.

But the better you know each other, and the more ease you have talking with one another, the more likely you’ll have already sorted out communication styles that work. You’ll just know how to get from point A to point B with less pain and awkwardness, because you’ve done it before.

It also gives you the ability to “read the room,” so to speak. You can tell if something you said is being poorly received or misunderstood. Those soft skills matter when you’re talking about career paths because they can accidentally veer into uncomfortable territory and leave people feeling insecure if the communication is off.

If you don’t already have a strong working relationship, it doesn’t preclude you from pulling off a successful conversation. It just makes the next two items — timing and forethought — all the more important.

It also might help to run a few practice rounds with someone so you can make sure you’re clearly verbalizing what you intend. Former HubSpotter Katherine Boyarsky does this and can’t recommend it enough: “Have a mantra that you can repeat in your head during the conversation that helps center you if you go off on a tangent,” she explains.

Aim to be very clear, direct, and forthright with what you’re looking to do without putting the other party on the defensive.

2) Timing

There have been a few career conversations I’ve had in the past that were ill-timed. It didn’t turn them into an utter disaster, but they just didn’t seem to stick. The most common instances where the timing has been off in my experience have been:

  • My boss didn’t know I wanted to have the conversation/I sprung the conversation on a team member in our 1:1. When it comes to talking about your career path, you can’t expect great results from a conversation in which half the people in the room are unprepared. Give everyone some time to think about this. After all, it’s a massive topic that has a lot of moving parts to consider.
  • We tacked it on to the end of a meeting but didn’t have enough time to finish the conversation. Because your career path is such a massive topic, allot enough time to do it justice. I think career discussions are best when they take place over a series of conversations, so it’s alright if you just have a quick thought once in a while. But if you haven’t had this talk with your boss or employee yet (or it’s been a while), make a separate meeting dedicated to this, and only this.
  • I could tell my boss was distracted due to other sources of stress. This is where that “reading the room” I mentioned earlier comes into play. Even if you’ve pre-planned a career path meeting, sometimes things come up that distract one or both of the participants. If you’re picking up on some body language — or spoken language — that indicates distraction, reschedule the meeting.

3) Forethought

A lot of this post so far has been a 50/50 thing — managers and employees should both be held accountable for this career path stuff. But when it comes to forethought, this lies largely on the employees’ shoulders. We need to think about what we want to do in our career. No one can tell us the answer to: “What do you want to do in five years?

Sure, your manager, a mentor, or your family and friends can all talk you through that stuff, but it does come down to you to take ownership over the direction in which you want your career to go.

So, put some forethought into the ways your career path could take shape before broaching the subject with your manager. Some people tend to have really clear career goals, while others are a little more … floaty. That’s fine. If you find yourself in the “floaty” camp, here’s are a couple things to think about to get your brain going:

First, it’s okay to not know what you want from your career at all times. I tend to bucket my life in quadrants:

  • Relationships (friends, family, love)
  • Career (skill development, promotions, satisfaction from the work I’m doing)
  • Hobbies (beach bumming, ghost stuff)
  • Health (exercise, cooking, happiness, clean home)

Typically, not all of those areas of my life are banging on all cylinders at once. When life is going great, usually three — maybe only two — are rocking and rolling while the rest are in stasis for a bit. Sometimes, that thing that’s in stasis is your career. And that’s fine. You don’t need to be thinking about your career path all the time. But if you feel a general ennui, it might be that too many of those areas of your life are lagging — and one could very possibly be your career.

If that’s the case, ask yourself this …

What does the team look like today, versus a year from now?

First, think about this question hypothetically — assessing gaps that will need to be filled down the line, and aligning them with company goals. Then, talk to other leaders in the company and on your team about where they see the team going in a year, and what kinds of goals people might focus on in the future.

This is where your manager can help you, and where I have seen really successful (and non-awkward) career path conversations begin. If you can get a sense of what the organization’s needs will be over the next 12 months, you can start to see which of those needs you’re interested in helping fulfill — because even if your dream job is X, there’s not much anyone can do for you if the company’s investments are in Y.

Finally, remember that career progress comes from a lot of different places, and that progress is indicated by a lot of different things. It comes from skill development, networking, and aligning with projects that advance both personal and company goals. And all of that takes time.

If we want to benchmark our progress, we need to look at more than just promotions. Instead, we need to focus on whether we’re developing new skills, being given more responsibility and autonomy, putting ourselves in mildly uncomfortable situations that help us get better at stuff (hello, public speaking), working with new people in the organization, being asked for our opinion more often, or being pulled into meetings with people we respect and admire.

These are all really good signs of progress that are hard to formalize, but indicate you’re taking the right steps to get your career on the path you’re aiming for.

What Would an Expert Say About All of This?

I’m glad you asked.

That was all based on my experience — holding career path conversations with team members, and with my own manager. But let’s ask an actual HR professional who has spent a lot of time thinking about this stuff.

I talked to our Senior HR Business Partner Brianna Manning, and asked her for the advice she would give someone who was struggling to hold productive conversations about career advancement. She echoed two of the sentiments we’ve already talked about — preparation, and giving a heads up that you want to have this conversation. One point in particular Manning shared regarding preparation is the importance of establishing career trajectory dialogue from the beginning of your relationship together:

“If your manager is well aware of what direction you want to take your career, they can purposefully plan on assignments and projects that help set you in the right direction. In fact, if you want to follow your manager’s path, specifically, you should be direct and let them know that. Ask them to lunch to talk through their challenges, and learn what kinds of projects they took on to help get the skills they needed for the role.”

If you feel unsure of how to start that conversation because you don’t have that solid relationship yet, she provided some sample language that helps make it less intimidating:

“Try opening with something like ‘I learned about this really great resource to help us make the most of our 1:1s and layer in some career development focus — would you be open to trying it?’ or ‘I want to make sure we bake in time for communication around career development in our 1:1s, can we set aside five minutes for that on the agenda on a weekly basis?'”

But Pierce hit on one other important point in initiating these conversations I would be remiss to gloss over: You have to build trust and credibility to have productive career conversations.

It’s really difficult for your manager to focus on your career path if you aren’t succeeding in your current role. Make sure you’ve got a handle on your responsibilities before setting your sights on the next thing. In some cases, it might be wiser to focus on the “now” of your career path rather than the next turn down the road. As Pierce put it:

“If you demonstrate that you always deliver on current responsibilities, and always try to go the extra mile, you’ll build credibility and trust around your own personal brand. This will open doors for you. Just remember that it all takes time. It can’t happen overnight.”

She emphasized that credibility also comes from owning the follow-through on those career conversations. If your manager has opened up some doors for you, make sure you own your progression by nailing those stretch assignments, introductions, or whatever it is you’ve been given an opportunity to shine doing.

What Should You Expect to Get From These Career Path Conversations?

If you’re expecting a specific result out of one conversation, you’re setting yourself up for failure. You wouldn’t expect your manager to come in and dump a promotion on your lap, so you shouldn’t expect to solve your career destiny in one swoop.

In order for those doors to open, all relevant parties must be envisioning you in a certain role for a few months, at least.

I would say the best results typically come from people that think about their career path often, and have frequent — whether formal or informal — conversations about it.

Most of all, those with the most interesting paths tend to just keep an open mind about the different, jagged, very weird ways we all make our way through our careers.

Need help doing a little soul-searching? Take a few minutes to check out The Next Five.

free ebook: leadership lessons

 
New Call-to-action


Source: Hub Spot

]]>
http://criemails.com/how-to-ask-for-a-promotion-and-have-other-tough-conversations-with-your-boss/feed/ 0
So You Want to Build a Chat Bot &ndash; Here’s How (Complete with Code!) http://criemails.com/so-you-want-to-build-a-chat-bot-ndash-heres-how-complete-with-code/ http://criemails.com/so-you-want-to-build-a-chat-bot-ndash-heres-how-complete-with-code/#respond Wed, 20 Sep 2017 00:06:00 +0000 http://criemails.com/so-you-want-to-build-a-chat-bot-ndash-heres-how-complete-with-code/ Posted by R0bin_L0rd

You’re busy and (depending on effective keyword targeting) you’ve come here looking for something to shave months off the process of learning to produce your own chat bot. If you’re convinced you need this and just want the how-to, skip to “What my bot does.” If you want the background on why you should be building for platforms like Google Home, Alexa, and Facebook Messenger, read on.

Why should I read this?

Do you remember when it wasn’t necessary to have a website? When most boards would scoff at the value of running a Facebook page? Now Gartner is telling us that customers will manage 85% of their relationship with brands without interacting with a human by 2020 and publications like Forbes are saying that chat bots are the cause.

The situation now is the same as every time a new platform develops: if you don’t have something your customers can access, you’re giving that medium to your competition. At the moment, an automated presence on Google Home or Slack may not be central to your strategy, but those who claim ground now could dominate it in the future.

The problem is time. Sure, it’d be ideal to be everywhere all the time, to have your brand active on every platform. But it would also be ideal to catch at least four hours sleep a night or stop covering our keyboards with three-day-old chili con carne as we eat a hasty lunch in between building two of the Next Big Things. This is where you’re fortunate in two ways;

  1. When we develop chat applications, we don’t have to worry about things like a beautiful user interface because it’s all speech or text. That’s not to say you don’t need to worry about user experience, as there are rules (and an art) to designing a good conversational back-and-forth. Amazon is actually offering some hefty prizes for outstanding examples.
  2. I’ve spent the last six months working through the steps from complete ignorance to creating a distributable chat bot and I’m giving you all my workings. In this post I break down each of the levels of complexity, from no-code back-and-forth to managing user credentials and sessions the stretch over days or months. I’m also including full code that you can adapt and pull apart as needed. I’ve commented each portion of the code explaining what it does and linking to resources where necessary.

I’ve written more about the value of Interactive Personal Assistants on the Distilled blog, so this post won’t spend any longer focusing on why you should develop chat bots. Instead, I’ll share everything I’ve learned.

What my built-from-scratch bot does

Ever since I started investigating chat bots, I was particularly interested in finding out the answer to one question: What does it take for someone with little-to-no programming experience to create one of these chat applications from scratch? Fortunately, I have direct access to someone with little-to-no experience (before February, I had no idea what Python was). And so I set about designing my own bot with the following hard conditions:


  1. It had to have some kind of real-world application. It didn’t have to be critical to a business, but it did have to bear basic user needs in mind.
  2. It had to be easily distributable across the immediate intended users, and to have reasonable scope to distribute further (modifications at most, rather than a complete rewrite).
  3. It had to be flexible enough that you, the reader, can take some free code and make your own chat bot.
  4. It had to be possible to adapt the skeleton of the process for much more complex business cases.
  5. It had to be free to run, but could have the option of paying to scale up or make life easier.
  6. It had to send messages confirming when important steps had been completed.

The resulting program is “Vietnambot,” a program that communicates with Slack, the API.AI linguistic processing platform, and Google Sheets, using real-time and asynchronous processing and its own database for storing user credentials.

If that meant nothing to you, don’t worry — I’ll define those things in a bit, and the code I’m providing is obsessively commented with explanation. The thing to remember is it does all of this to write down food orders for our favorite Vietnamese restaurant in a shared Google Sheet, probably saving tens of seconds of Distilled company time every year.

It’s deliberately mundane, but it’s designed to be a template for far more complex interactions. The idea is that whether you want to write a no-code-needed back-and-forth just through API.AI; a simple Python program that receives information, does a thing, and sends a response; or something that breaks out of the limitations of linguistic processing platforms to perform complex interactions in user sessions that can last days, this post should give you some of the puzzle pieces and point you to others.

What is API.AI and what’s it used for?

API.AI is a linguistic processing interface. It can receive text, or speech converted to text, and perform much of the comprehension for you. You can see my Distilled post for more details, but essentially, it takes the phrase “My name is Robin and I want noodles today” and splits it up into components like:

  • Intent: food_request
  • Action: process_food
  • Name: Robin
  • Food: noodles
  • Time: today

This setup means you have some hope of responding to the hundreds of thousands of ways your users could find to say the same thing. It’s your choice whether API.AI receives a message and responds to the user right away, or whether it receives a message from a user, categorizes it and sends it to your application, then waits for your application to respond before sending your application’s response back to the user who made the original request. In its simplest form, the platform has a bunch of one-click integrations and requires absolutely no code.

I’ve listed the possible levels of complexity below, but it’s worth bearing some hard limitations in mind which apply to most of these services. They cannot remember anything outside of a user session, which will automatically end after about 30 minutes, they have to do everything through what are called POST and GET requests (something you can ignore unless you’re using code), and if you do choose to have it ask your application for information before it responds to the user, you have to do everything and respond within five seconds.

What are the other things?

Slack: A text-based messaging platform designed for work (or for distracting people from work).

Google Sheets: We all know this, but just in case, it’s Excel online.

Asynchronous processing: Most of the time, one program can do one thing at a time. Even if it asks another program to do something, it normally just stops and waits for the response. Asynchronous processing is how we ask a question and continue without waiting for the answer, possibly retrieving that answer at a later time.

Database: Again, it’s likely you know this, but if not: it’s Excel that our code will use (different from the Google Sheet).

Heroku: A platform for running code online. (Important to note: I don’t work for Heroku and haven’t been paid by them. I couldn’t say that it’s the best platform, but it can be free and, as of now, it’s the one I’m most familiar with).

How easy is it?

This graph isn’t terribly scientific and it’s from the perspective of someone who’s learning much of this for the first time, so here’s an approximate breakdown:

Label

Functionality

Time it took me

1

You set up the conversation purely through API.AI or similar, no external code needed. For instance, answering set questions about contact details or opening times

Half an hour to distributable prototype

2

A program that receives information from API.AI and uses that information to update the correct cells in a Google Sheet (but can’t remember user names and can’t use the slower Google Sheets integrations)

A few weeks to distributable prototype

3

A program that remembers user names once they’ve been set and writes them to Google Sheets. Is limited to five seconds processing time by API.AI, so can’t use the slower Google Sheets integrations and may not work reliably when the app has to boot up from sleep because that takes a few seconds of your allocation*

A few weeks on top of the last prototype

4

A program that remembers user details and manages the connection between API.AI and our chosen platform (in this case, Slack) so it can break out of the five-second processing window.

A few weeks more on top of the last prototype (not including the time needed to rewrite existing structures to work with this)

*On the Heroku free plan, when your app hasn’t been used for 30 minutes it goes to sleep. This means that the first time it’s activated it takes a little while to start your process, which can be a problem if you have a short window in which to act. You could get around this by (mis)using a free “uptime monitoring service” which sends a request every so often to keep your app awake. If you choose this method, in order to avoid using all of the Heroku free hours allocation by the end of the month, you’ll need to register your card (no charge, it just gets you extra hours) and only run this application on the account. Alternatively, there are any number of companies happy to take your money to keep your app alive.

For the rest of this post, I’m going to break down each of those key steps and either give an overview of how you could achieve it, or point you in the direction of where you can find that. The code I’m giving you is Python, but as long as you can receive and respond to GET and POST requests, you can do it in pretty much whatever format you wish.


1. Design your conversation

Conversational flow is an art form in itself. Jonathan Seal, strategy director at Mando and member of British Interactive Media Association’s AI thinktank, has given some great talks on the topic. Paul Pangaro has also spoken about conversation as more than interface in multiple mediums.

Your first step is to create a flow chart of the conversation. Write out your ideal conversation, then write out the most likely ways a person might go off track and how you’d deal with them. Then go online, find existing chat bots and do everything you can to break them. Write out the most difficult, obtuse, and nonsensical responses you can. Interact with them like you’re six glasses of wine in and trying to order a lemon engraving kit, interact with them as though you’ve found charges on your card for a lemon engraver you definitely didn’t buy and you are livid, interact with them like you’re a bored teenager. At every point, write down what you tried to do to break them and what the response was, then apply that to your flow. Then get someone else to try to break your flow. Give them no information whatsoever apart from the responses you’ve written down (not even what the bot is designed for), refuse to answer any input you don’t have written down, and see how it goes. David Low, principal evangelist for Amazon Alexa, often describes the value of printing out a script and testing the back-and-forth for a conversation. As well as helping to avoid gaps, it’ll also show you where you’re dumping a huge amount of information on the user.

While “best practices” are still developing for chat bots, a common theme is that it’s not a good idea to pretend your bot is a person. Be upfront that it’s a bot — users will find out anyway. Likewise, it’s incredibly frustrating to open a chat and have no idea what to say. On text platforms, start with a welcome message making it clear you’re a bot and giving examples of things you can do. On platforms like Google Home and Amazon Alexa users will expect a program, but the “things I can do” bit is still important enough that your bot won’t be approved without this opening phase.

I’ve included a sample conversational flow for Vietnambot at the end of this post as one way to approach it, although if you have ideas for alternative conversational structures I’d be interested in reading them in the comments.

A final piece of advice on conversations: The trick here is to find organic ways of controlling the possible inputs and preparing for unexpected inputs. That being said, the Alexa evangelist team provide an example of terrible user experience in which a bank’s app said: “If you want to continue, say nine.” Quite often questions, rather than instructions, are the key.

2. Create a conversation in API.AI

API.AI has quite a lot of documentation explaining how to create programs here, so I won’t go over individual steps.

Key things to understand:

You create agents; each is basically a different program. Agents recognize intents, which are simply ways of triggering a specific response. If someone says the right things at the right time, they meet criteria you have set, fall into an intent, and get a pre-set response.

The right things to say are included in the “User says” section (screenshot below). You set either exact phrases or lists of options as the necessary input. For instance, a user could write “Of course, I’m [any name]” or “Of course, I’m [any temperature].” You could set up one intent for name-is which matches “Of course, I’m [given-name]” and another intent for temperature which matches “Of course, I’m [temperature],” and depending on whether your user writes a name or temperature in that final block you could activate either the “name-is” or “temperature-is” intent.

The “right time” is defined by contexts. Contexts help define whether an intent will be activated, but are also created by certain intents. I’ve included a screenshot below of an example interaction. In this example, the user says that they would like to go to on holiday. This activates a holiday intent and sets the holiday context you can see in input contexts below. After that, our service will have automatically responded with the question “where would you like to go?” When our user says “The” and then any location, it activates our holiday location intent because it matches both the context, and what the user says. If, on the other hand, the user had initially said “I want to go to the theater,” that might have activated the theater intent which would set a theater context — so when we ask “what area of theaters are you interested in?” and the user says “The [location]” or even just “[location],” we will take them down a completely different path of suggesting theaters rather than hotels in Rome.

The way you can create conversations without ever using external code is by using these contexts. A user might say “What times are you open?”; you could set an open-time-inquiry context. In your response, you could give the times and ask if they want the phone number to contact you. You would then make a yes/no intent which matches the context you have set, so if your user says “Yes” you respond with the number. This could be set up within an hour but gets exponentially more complex when you need to respond to specific parts of the message. For instance, if you have different shop locations and want to give the right phone number without having to write out every possible location they could say in API.AI, you’ll need to integrate with external code (see section three).

Now, there will be times when your users don’t say what you’re expecting. Excluding contexts, there are three very important ways to deal with that:

  1. Almost like keyword research — plan out as many possible variations of saying the same thing as possible, and put them all into the intent
  2. Test, test, test, test, test, test, test, test, test, test, test, test, test, test, test (when launched, every chat bot will have problems. Keep testing, keep updating, keep improving.)
  3. Fallback contexts

Fallback contexts don’t have a user says section, but can be boxed in by contexts. They match anything that has the right context but doesn’t match any of your user says. It could be tempting to use fallback intents as a catch-all. Reasoning along the lines of “This is the only thing they’ll say, so we’ll just treat it the same” is understandable, but it opens up a massive hole in the process. Fallback intents are designed to be a conversational safety net. They operate exactly the same as in a normal conversation. If a person asked what you want in your tea and you responded “I don’t want tea” and that person made a cup of tea, wrote the words “I don’t want tea” on a piece of paper, and put it in, that is not a person you’d want to interact with again. If we are using fallback intents to do anything, we need to preface it with a check. If we had to resort to it in the example above, saying “I think you asked me to add I don’t want tea to your tea. Is that right?” is clunky and robotic, but it’s a big step forward, and you can travel the rest of the way by perfecting other parts of your conversation.

3. Integrating with external code

I used Heroku to build my app . Using this excellent weather webhook example you can actually deploy a bot to Heroku within minutes. I found this example particularly useful as something I could pick apart to make my own call and response program. The weather webhook takes the information and calls a yahoo app, but ignoring that specific functionality you essentially need the following if you’re working in Python:

#start
    req = request.get_json
    print("Request:")
    print(json.dumps(req, indent=4))
#process to do your thing and decide what response should be

    res = processRequest(req)
# Response we should receive from processRequest (you’ll need to write some code called processRequest and make it return the below, the weather webhook example above is a good one).
{
        "speech": “speech we want to send back”,
        "displayText": “display text we want to send back, usually matches speech”,
        "source": "your app name"
    }

# Making our response readable by API.AI and sending it back to the servic

 response = make_response(res)
    response.headers['Content-Type'] = 'application/json'
    return response
# End

As long as you can receive and respond to requests like that (or in the equivalent for languages other than Python), your app and API.AI should both understand each other perfectly — what you do in the interim to change the world or make your response is entirely up to you. The main code I have included is a little different from this because it’s also designed to be the step in-between Slack and API.AI. However, I have heavily commented sections like like process_food and the database interaction processes, with both explanation and reading sources. Those comments should help you make it your own. If you want to repurpose my program to work within that five-second window, I would forget about the file called app.py and aim to copy whole processes from tasks.py, paste them into a program based on the weatherhook example above, and go from there.

Initially I’d recommend trying GSpread to make some changes to a test spreadsheet. That way you’ll get visible feedback on how well your application is running (you’ll need to go through the authorization steps as they are explained here).

4. Using a database

Databases are pretty easy to set up in Heroku. I chose the Postgres add-on (you just need to authenticate your account with a card; it won’t charge you anything and then you just click to install). In the import section of my code I’ve included links to useful resources which helped me figure out how to get the database up and running — for example, this blog post.

I used the Python library Psycopg2 to interact with the database. To steal some examples of using it in code, have a look at the section entitled “synchronous functions” in either the app.py or tasks.py files. Open_db_connection and close_db_connection do exactly what they say on the tin (open and close the connection with the database). You tell check_database to check a specific column for a specific user and it gives you the value, while update_columns adds a value to specified columns for a certain user record. Where things haven’t worked straightaway, I’ve included links to the pages where I found my solution. One thing to bear in mind is that I’ve used a way of including columns as a variable, which Psycopg2 recommends quite strongly against. I’ve gotten away with it so far because I’m always writing out the specific column names elsewhere — I’m just using that method as a short cut.

5. Processing outside of API.AI’s five-second window

It needs to be said that this step complicates things by no small amount. It also makes it harder to integrate with different applications. Rather than flicking a switch to roll out through API.AI, you have to write the code that interprets authentication and user-specific messages for each platform you’re integrating with. What’s more, spoken-only platforms like Google Home and Amazon Alexa don’t allow for this kind of circumvention of the rules — you have to sit within that 5–8 second window, so this method removes those options. The only reasons you should need to take the integration away from API.AI are:

  • You want to use it to work with a platform that it doesn’t have an integration with. It currently has 14 integrations including Facebook Messenger, Twitter, Slack, and Google Home. It also allows exporting your conversations in an Amazon Alexa-understandable format (Amazon has their own similar interface and a bunch of instructions on how to build a skill — here is an example.
  • You are processing masses of information. I’m talking really large amounts. Some flight comparison sites have had problems fitting within the timeout limit of these platforms, but if you aren’t trying to process every detail for every flight for the next 12 months and it’s taking more than five seconds, it’s probably going to be easier to make your code more efficient than work outside the window. Even if you are, those same flight comparison sites solved the problem by creating a process that regularly checks their full data set and creates a smaller pool of information that’s more quickly accessible.
  • You need to send multiple follow-up messages to your user. When using the API.AI integration it’s pretty much call-and-response; you don’t always get access to things like authorization tokens, which are what some messaging platforms require before you can automatically send messages to one of their users.
  • You’re working with another program that can be quite slow, or there are technical limitations to your setup. This one applies to Vietnambot, I used the GSpread library in my application, which is fantastic but can be slow to pull out bigger chunks of data. What’s more, Heroku can take a little while to start up if you’re not paying.

I could have paid or cut out some of the functionality to avoid needing to manage this part of the process, but that would have failed to meet number 4 in our original conditions: It had to be possible to adapt the skeleton of the process for much more complex business cases. If you decide you’d rather use my program within that five-second window, skip back to section 2 of this post. Otherwise, keep reading.

When we break out of the five-second API.AI window, we have to do a couple of things. First thing is to flip the process on its head.

What we were doing before:

User sends message -> API.AI -> our process -> API.AI -> user

What we need to do now:

User sends message -> our process -> API.AI -> our process -> user

Instead of API.AI waiting while we do our processing, we do some processing, wait for API.AI to categorize the message from us, do a bit more processing, then message the user.

The way this applies to Vietnambot is:

  1. User says “I want [food]”
  2. Slack sends a message to my app on Heroku
  3. My app sends a “swift and confident” 200 response to Slack to prevent it from resending the message. To send the response, my process has to shut down, so before it does that, it activates a secondary process using “tasks.”
  4. The secondary process takes the query text and sends it to API.AI, then gets back the response.
  5. The secondary process checks our database for a user name. If we don’t have one saved, it sends another request to API.AI, putting it in the “we don’t have a name” context, and sends a message to our user asking for their name. That way, when our user responds with their name, API.AI is already primed to interpret it correctly because we’ve set the right context (see section 1 of this post). API.AI tells us that the latest message is a user name and we save it. When we have both the user name and food (whether we’ve just got it from the database or just saved it to the database), Vietnambot adds the order to our sheet, calculates whether we’ve reached the order minimum for that day, and sends a final success message.

6. Integrating with Slack

This won’t be the same as integrating with other messaging services, but it could give some insight into what might be required elsewhere. Slack has two authorization processes; we’ll call one “challenge” and the other “authentication.”

Slack includes instructions for an app lifecycle here, but API.AI actually has excellent instructions for how to set up your app; as a first step, create a simple back-and-forth conversation in API.AI (not your full product), go to integrations, switch on Slack, and run through the steps to set it up. Once that is up and working, you’ll need to change the OAuth URL and the Events URL to be the URL for your app.

Thanks to github user karishay, my app code includes a process for responding to the challenge process (which will tell Slack you’re set up to receive events) and for running through the authentication process, using our established database to save important user tokens. There’s also the option to save them to a Google Sheet if you haven’t got the database established yet. However, be wary of this as anything other than a first step — user tokens give an app a lot of power and have to be guarded carefully.

7. Asynchronous processing

We are running our app using Flask, which is basically a whole bunch of code we can call upon to deal with things like receiving requests for information over the internet. In order to create a secondary worker process I’ve used Redis and Celery. Redis is our “message broker”; it makes makes a list of everything we want our secondary process to do. Celery runs through that list and makes our worker process do those tasks in sequence. Redis is a note left on the fridge telling you to do your washing and take out the bins, while Celery is the housemate that bangs on your bedroom door, note in hand, and makes you do each thing. I’m sure our worker process doesn’t like Celery very much, but it’s really useful for us.

You can find instructions for adding Redis to your app in Heroku here and you can find advice on setting up Celery in Heroku here. Miguel Grinberg’s Using Celery with Flask blog post is also an excellent resource, but using the exact setup he gives results in a clash with our database, so it’s easier to stick with the Heroku version.

Up until this point, we’ve been calling functions in our main app — anything of the form function_name(argument_1, argument_2, argument_3). Now, by putting “tasks.” in front of our function, we’re saying “don’t do this now — hand it to the secondary process.” That’s because we’ve done a few things:

  • We’ve created tasks.py which is the secondary process. Basically it’s just one big, long function that our main code tells to run.
  • In tasks.py we’ve included Celery in our imports and set our app as celery.Celery(), meaning that when we use “app” later we’re essentially saying “this is part of our Celery jobs list” or rather “tasks.py will only do anything when its flatmate Celery comes banging on the door”
  • For every time our main process asks for an asynchronous function by writing tasks.any_function_name(), we have created that function in our secondary program just as we would if it were in the same file. However in our secondary program we’ve prefaced with “@app.task”, another way of saying “Do wash_the_dishes when Celery comes banging the door yelling wash_the_dishes(dishes, water, heat, resentment)”.
  • In our “procfile” (included as a file in my code) we have listed our worker process as –app=tasks.app

All this adds up to the following process:

  1. Main program runs until it hits an asynchronous function
  2. Main program fires off a message to Redis which has a list of work to be done. The main process doesn’t wait, it just runs through everything after it and in our case even shuts down
  3. The Celery part of our worker program goes to Redis and checks for the latest update, it checks what function has been called (because our worker functions are named the same as when our main process called them), it gives our worker all the information to start doing that thing and tells it to get going
  4. Our worker process starts the action it has been told to do, then shuts down.

As with the other topics mentioned here, I’ve included all of this in the code I’ve supplied, along with many of the sources used to gather the information — so feel free to use the processes I have. Also feel free to improve on them; as I said, the value of this investigation was that I am not a coder. Any suggestions for tweaks or improvements to the code are very much welcome.


Conclusion

As I mentioned in the introduction to this post, there’s huge opportunity for individuals and organizations to gain ground by creating conversational interactions for the general public. For the vast majority of cases you could be up and running in a few hours to a few days, depending on how complex you want your interactions to be and how comfortable you are with coding languages. There are some stumbling blocks out there, but hopefully this post and my obsessively annotated code can act as templates and signposts to help get you on your way.

Grab my code at GitHub


Bonus #1: The conversational flow for my chat bot

This is by no means necessarily the best or only way to approach this interaction. This is designed to be as streamlined an interaction as possible, but we’re also working within the restrictions of the platform and the time investment necessary to produce this. Common wisdom is to create the flow of your conversation and then keep testing to perfect, so consider this example layout a step in that process. I’d also recommend putting one of these flow charts together before starting — otherwise you could find yourself having to redo a bunch of work to accommodate a better back-and-forth.

Bonus #2: General things I learned putting this together

As I mentioned above, this has been a project of going from complete ignorance of coding to slightly less ignorance. I am not a professional coder, but I found the following things I picked up to be hugely useful while I was starting out.

  1. Comment everything. You’ll probably see my code is bordering on excessive commenting (anything after a # is a comment). While normally I’m sure someone wouldn’t want to include a bunch of Stack Overflow links in their code, I found notes about what things portions of code were trying to do, and where I got the reasoning from, hugely helpful as I tried to wrap my head around it all.
  2. Print everything. In Python, everything within “print()” will be printed out in the app logs (see the commands tip for reading them in Heroku). While printing each action can mean you fill up a logging window terribly quickly (I started using the Heroku add-on LogDNA towards the end and it’s a huge step up in terms of ease of reading and length of history), often the times my app was falling over was because one specific function wasn’t getting what it needed, or because of another stupid typo. Having a semi-constant stream of actions and outputs logged meant I could find the fault much more quickly. My next step would probably be to introduce a way of easily switching on and off the less necessary print functions.
  3. The following commands: Heroku’s how-to documentation for creating an app and adding code is pretty great, but I found myself using these all the time so thought I’d share (all of the below are written in the command line; type cmd in on Windows or by running Terminal on a Mac):
    1. CD “””[file location]””” – select the file your code is in
    2. “git init” – create a git file to add to
    3. “git add .” – add all of the code in your file into the file that git will put online
    4. “git commit -m “[description of what you’re doing]” “ – save the data in your git file
    5. “heroku git:remote -a [the name of your app]” – select your app as where to put the code
    6. “git push heroku master” – send your code to the app you selected
    7. “heroku ps” – find out whether your app is running or crashed
    8. “heroku logs” – apologize to your other half for going totally unresponsive for the last ten minutes and start the process of working through your printouts to see what has gone wrong
  4. POST requests will always wait for a response. Seems really basic — initially I thought that by just sending a POST request and not telling my application to wait for a response I’d be able to basically hot-potato work around and not worry about having to finish what I was doing. That’s not how it works in general, and it’s more of a symbol of my naivete in programming than anything else.
  5. If something is really difficult, it’s very likely you’re doing it wrong.
    While I made sure to do pretty much all of the actual work myself (to
    avoid simply farming it out to the very talented individuals at
    Distilled), I was lucky enough to get some really valuable advice. The
    piece of advice above was from Dominic Woodman, and I should have
    listened to it more. The times when I made least progress were when I
    was trying to use things the way they shouldn’t be used. Even when I
    broke through those walls, I later found that someone didn’t want me to
    use it that way because it would completely fail at a later point.
    Tactical retreat
    is an option. (At this point, I should mention he wasn’t
    the only one to give invaluable advice; Austin, Tom, and Duncan of the
    Distilled R&D team were a huge help.)

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!


Source: Moz Blog

]]>
http://criemails.com/so-you-want-to-build-a-chat-bot-ndash-heres-how-complete-with-code/feed/ 0