text:
Marketing Strategies
How to Handle Marketing During Uncertain Times
For many businesses and individuals, the past few years have been positive and included opportunities and avenues for growth. With the current COVID-19 pandemic that is spreading across much of Europe and the Americas, the present and future have become very uncertain. The clear focus now should be on taking care of those who are ill, protecting those who are high-risk for infection, and staying healthy.
In the U.S., many businesses large and small are taking preventative measures to take care of their employees, customers, suppliers, and partners. Enabling remote working when possible has been demonstrated to be a good business continuity plan that puts the health of workers at the forefront. However, many businesses and business leaders who have taken steps to protect their workers are still experiencing much uncertainty about what comes next.
While business as usual is not an option, especially when it comes to marketing, there are several things to keep in mind during this pandemic. Below, our marketing team shares their thoughts on how to approach marketing as we cope with this global crisis.
Accept the Uncertainty but Don't Panic
As humans, we are wired for fight or flight and panic can be a very real, normal response to the Coronavirus pandemic. The first thing that business leaders and marketers (and all individuals) should do is to accept that uncertainty will be constant for the near future, but to not panic. It's important to know that while there are many uncertainties and China has not fully recovered from the Coronavirus outbreak, the country was able to disrupt the outbreak and change the course of the spread. While this won't change our present, it should provide hope for the future, that recovery is imminent if we act appropriately now.
For marketers and business leaders, this means we can't continue as normal, but that we need to adapt. You may be tempted to panic and stop all your marketing activities. While you may want to pause some activities to be sensitive to those who are ill or experiencing loss or hardship, it's important to be strategic. While it may seem best to pause all your marketing activities, that will absolutely hurt your business in the future and may hinder your ability to recover.
Be Realistic, Not Pessimistic
In many ways, "the only thing we have to fear is fear itself." Yes, we need to fear COVID-19, but for many B2B businesses, demand for your products and services is still there. If we go too far down the track of negative thinking, it will negatively affect employees, partners, clients, etc. Negative thinking can actually be more contagious than COVID-19 in a virtual workplace.
With marketing, be realistic about the impact COVID-19 will have on your business. Yes there will be dramatic effects on certain businesses (restaurants, bars, air travel, etc.), but there are other B2B businesses where it is business as usual, the only difference is sales and customer service will be done via Zoom, phone, or email. The quantity and quality of service will really not be affected.
Do not go down the path of negative thinking for no reason. Most B2B businesses can survive and actually thrive using alternative communication and service delivery platforms.
Be Thoughtful and Intentional
Over the past week, we have seen business leaders and marketers acting thoughtfully and with intention. Changing business operations to include "social distancing," mandating that all workers able to work remotely do so, moving as much work online as possible, and limiting the amount of in-person interaction possible. These decisions are all thoughtful and intentional choices that demonstrate concern for individuals.
Marketers should be continuing to be thoughtful and intentional in their efforts. It's ok to still post blog posts as long as the topics are worthwhile to the audience. It's ok to send an email newsletter if the content is sensitive to the audience and offering value. Remember that many folks are taking their additional time right now to improve their skill set or expand their knowledge. They are focusing on the future and your content or materials will help to educate them while also letting them take their mind off the uncertainty surrounding them.
Avoid Being Opportunistic or Predatory
There is a clear line between an entrepreneurial spirit and using an opportunity to provide value. Because toilet paper hoarders are selling rolls for $10 a piece out of their cars, it's essential to state that marketers and business owners absolutely MUST avoid being opportunistic or predatory.
If you are seeing an increased demand for something like IT services to set up remote workers or conference call software (both real demands now), be very careful about how you market these services. Make sure you understand the true need behind what is driving these trends and speak to the concerns of the end-users or business units.
Adapt for Now, Plan for the Future
We don't know when the COVID-19 pandemic will be slowed, or how far it will reach, or what the final impact will be. But, based on recovery rates being published, it's likely that much of the population will survive. For marketers and business leaders, it's important to be flexible and adapt for now, but to continue to plan for the future.
We are all in this together and we will pull through.
Leave a Reply
Marketing Strategies
How to Make a Scalable SMS Chatbot Using Twilio, Python, and Google Sheets (with Free Code)
Posted by R0bin_L0rd
Many of us are helping businesses that are facing hard times, or we're facing hard times ourselves. If you're working for a company (or client) that's in trouble, the use of SMS chatbots could be a way for you to look outside your normal list of solutions and help them succeed in a completely different way. If you're a marketer looking for work, adding this to your list of skills could mean you keep things ticking along while many of the usual doors are closed — or that you open new doors.
What you'll get
In this post, I give you instructions and code to produce not just one, but a series of text-based chatbots that can be managed by Google Sheets.
The example here is set up to work with restaurants, but could be adapted to work with any business that needs to receive orders, check them against inventory/menus, and note them down to be fulfilled.
Once the system is set up, there will be no coding necessary to create a new SMS-based chatbot for a new business. Plus, that business will be able to manage key details (like incoming orders and a menu) by simply updating a Google Sheet, making all of this far more accessible than most other options.
But first, some context.
Some context
In September 2017, as one of my first big passion projects at Distilled, I wrote a Moz blog post telling people how to make a chatbot and giving away some example code.
This April, I got an email from a man named Alexandre Silvestre. Alex had launched "a non-profit effort to help the local small business owners navigate these challenging times, save as many jobs as possible, and continue to serve our community while helping to flatten the curve."
This effort began by focusing on restaurants. Alex had found my 2017 post (holy moly, content marketing works!) and asked if I could help his team build a chatbot. We agreed on some basic requirements for the bot:
- It had to work entirely within text message (and if the order was super complicated it had to be able to set up a call directly with the restaurant).
- Running it had to be as close to free as possible.
- Restaurants had to be able to check on orders, update menus, etc., without setting up special accounts.
The solution we agreed on had three parts:
- Twilio (paid): supplies the phone number and handles most of the conversational back-and-forth.
- Google Cloud Functions (semi-free): when a URL is called it runs code (including updating our database for the restaurant) and returns a response.
- Google Sheets (free): our database platform. We have a sheet which lists all of the businesses using our chatbot, and linking off to the individual Google Sheets for each business.
I'll take you through each of these components in turn and tell you how to work with them.
If you're coming back to this post, or just need help with one area, feel free to jump to the specific part you're interested in:
—<a href="https://moz.com/blog#pricing" Pricing
—Google Sheets
—Google Cloud Functions
—Test the bot
—Break things and have fun
—Postscript — weird hacks
This should all run pretty cheaply — I'm talking like four cents an order.
Even so, always make sure that any pricing alerts are coming through to an email address you actively monitor.
When you're just starting on this, or when you've made a change (like adding new functionality or new businesses), make sure you check back in on your credits over the next few weeks so you know what's going on.
Local Twilio phone numbers cost about $1.00 per month. It'll cost about $0.0075 to send and receive texts, and Twilio Studio — which we use to do a lot of the "conversation" — costs $0.01 every time it's activated (the first 1,000 every month are free).
So, assuming you have 2,500 text orders a month and each order takes about five text messages, it's coming to about $100 a month in total.
Google Sheets
Google Sheets is free, and great. Long live Google Sheets.
Google Cloud Functions
Google shares full pricing details here, but the important things to know about are:
1. Promotional credits
You get a free trial which lasts up to a year, and it includes $300 of promotional credits, so it'll spend that before it spends your money. We'd spent $0.00 (including promotional credits) at the end of a month of testing. That's because there's also a monthly free allowance.
2. Free allowance and pricing structure
Even aside from the free credits, Google gives a free allowance every month. If we assume that each order requires about 5 activations of our code and our code takes up to five seconds to run each time (which is a while but sometimes Google Sheets is sluggish), we could be getting up to over 400,000 orders per month before we dip into the promotional credits.
Twilio is a paid platform that lets you buy a phone number and have that number automatically send certain responses based on input.
If you don't want to read more about Twilio and just want the free Twilio chatbot flow, here it is.
Step 1: Buy a Twilio phone number
Once you've bought a phone number, you can receive texts to that number and they'll be processed in your Twilio account. You can also send texts from that number.
Step 2: Find your phone number
You can see your list of purchased phone numbers by clicking the Twilio menu in the top left hand corner and then clicking "Phone Numbers". Or, you can just go to phone-numbers/incoming.
Once you see your phone number listed, make a note of it.
Step 3: Create your Studio Flow
Studio is Twilio's drag-and-drop editor that lets you create the structure of your conversation. A studio "flow" is just the name of a specific conversation you've constructed.
You can get to Twilio Studio by clicking on the Twilio menu again and clicking on "Studio" under "Runtime".
Create a new flow by clicking "Create a flow".
When you create a new flow, you'll be given the option to start from scratch or use one of the built-in options to build your flow for you (although they won't be as in-depth as the template I'm sharing here).
If you want to use a version of the flow which Alex and I built, select "Import from JSON" and click "Next". Then, download this file and copy the contents into the box that comes up.
Make sure that it starts with a single { brace, and ends with a single } brace. The box that comes up will automatically have {} in it and if you don't delete them before you paste, you'll double-up and it won't accept your input.
If all goes well, you'll be presented with a flow that looks like this:
You might be asking: What in the name of all that is holy is that tangle of colored spaghetti?
That's the Twilio Studio flow we created and, don't worry, it basically splits up into a series of multiple-choice questions where the answer to each determines where you go next in the flow.
Everything on the canvas that you can see is a widget from the Twilio Studio widget library connected together with "if this, then that" type conditions.
The Studio Flow process
Before we go into specific blocks in the process, here's an overview of what happens:
- A customer messages one of our Twilio numbers
- Based on the specific number messaged, we look up the restaurant associated with it. We then use the name and saved menu of the restaurant to message the customer.
- If the customer tries to order off-menu, we connect a call to the restaurant
- If the customer chooses something from our menu, we ask their name, then record their order in the sheet for that restaurant and tell them when to arrive to pick up their order
- As/when the user messages to tell us they are outside the restaurant, we ask whether they are on-foot/a description of their vehicle. We record the vehicle description in the same restaurant sheet.
Let's look at some example building blocks shall we?
Initial Trigger
The initial trigger appears right at the start of every flow, and splits the incoming contact based on whether it's a text message, a phone call, or if code is accessing it.
"Incoming Message" means the contact was via text message. We only need to worry about that one for now, so let's focus on the left-hand line.
Record the fact that we're starting a new interaction
Next, we use a "Set Variables" block, which you can grab from the widget library.
The "Set Variables" block lets us save record information that we want to refer to later. For example, we start by just setting the "stage" of our interaction. We say that the stage is "start" as in, we are at the start of the interaction. Later on we'll check what the value of stage is, both in Studio and in our external code, so that we know what to do, when.
Get our menu
We assume that if someone messaged us, triggering the chatbot, they are looking to order so the next stage is to work out what the applicable menu is.
Now, we could just write the menu out directly into Studio and say that whenever someone sends us a message, we respond with the same list of options. But that has a couple problems.
First, it would mean that if we want to set this up for multiple restaurants, we'd have to create a new flow for each.
The bigger issue is that restaurants often change their menus. If we want this to be something we can offer to lots of different restaurants, we don't want to spend all our time manually updating Twilio every time a restaurant runs out of an ingredient.
So what we really need is for the restaurants to be able to list their own menus. This is where Google Sheets comes in, but we'll get to that later. In Twilio, we just need to be able to ask for external information and forward that external information to the user. To do that we use a Webhook widget:
This widget makes a request to a URL, gets the response, and then lets us use the content of the response in our messages and flow.
If the request to the URL is successful, Twilio will automatically continue to our success step, otherwise we can set it to send an "Oops, something went wrong" response with the Fail option.
In this case, our Webhook will make a request to the Google Cloud functions URL (more on that later). The request we send will include some information about the user and what we need the code to do. The information will be in JSON format (the same format that we used to import the Twilio flow I shared above).
Our JSON will include the specific Twilio phone number that's been messaged, and we'll use that number to differentiate between restaurants, as well as the phone number that contacted us. It'll also include the content of the text message we received and the "stage" we set earlier, so the code knows what the user is looking for.
Then the code will do some stuff (we'll get to that later) and return information of its own. We can then tell Twilio to use parts of the response in messages.
Send a message in response
Next we can use the information we received to construct and send a message to the user. Twilio will remember the number you're in a conversation with and it'll send your messages to that number.
This is the "Send & Wait For Reply" widget, meaning that once this message is sent, Twilio will assume the conversation is still going rather than ending it there.
In this case, we're writing our welcome message. We could write out just plain content, but we want to use some of the variables we got from our Webhook widget. We called that specific Webhook widget "get_options", so we access the content we got from it by writing:
The response comes back in JSON, and fortunately Twilio automatically breaks that up for us.
We can access individual parts of the response by writing "parsed" and then the label we gave that information in our response. As it is, the response from the code looked something like this:
{"name": restaurant_name,
"dishes_string": "You can choose from Margherita Pizza, Hawaiian Pizza, Vegetarian Pizza"
"additions": "large, medium, small"}
We get the available menu by writing "{{widgets.get_options.parsed.dishes_string}}", and then we write the message below which will be sent to people who contact the bot:
Make a decision based on a message
We can't assume everyone is going to use the bot in exactly the same way so we need to be able to change what we do based on certain conditions. The "Split Based On…" widget is how we select certain conditions and set what to do if they are met.
In this case, we use the content of the response to our previous message which we access using {{options_follow_up.inbound.Body}}. "Options_follow_up" is the name of the Send & Wait widget we just spoke about, "inbound" means the response and, "Body" means the text within it.
Then we set a condition. If the user responds with anything along the lines of "other", "no", "help", etc., they'll get sent off on another track to have a phone call. If they respond with anything not on that list, they might be trying to order, so we take their order and check it with our code:
Set up a call
If the user says they want something off-menu, we'll need to set up a call with the restaurant. We do that by first calling the user:
Then, when they pick up, connecting that call to the restaurant number which we've already looked up in our sheets:
Step 4: Select your studio flow for this phone number
Follow the instructions in step two to get back to the specific listing for the phone number you bought. Then scroll to the bottom and select the Studio Flow you created.
Google Sheets
This chatbot uses two Google Sheets.
Free lookup sheet
The lookup sheet holds a list of Twilio phone numbers, the restaurant they have been assigned to, and the URL of the Google Sheet which holds the details for that restaurant, so that we know where to look for each.
You'll need to create a copy of the sheet to use it. I've included a row in the sheet I shared, explaining each of the columns. Feel free to delete that when you know what you're doing.
Free example restaurant sheet
The restaurant-specific sheet is where we include all of our information about the restaurant in a series of tabs. You'll need to create a copy of the sheet to use it.
The orders tab is mainly used by our code. It will automatically write in the order time, customer name, customer phone number, and details of the order. By default it'll write FALSE in the "PAID/READY?" column, which the restaurant will then need to update.
In the final stage, the script will add TRUE to the "CUSTOMER HERE?" column and give the car description in the "PICK UP INFO" column.
Wait time
This is a fairly simple tab, as it contains one cell where the restaurant writes in how long it'll be before orders are ready. Our code will extract that and give it to Twilio to let customers know how long they'll likely be waiting.
Available dishes and additions tabs
The restaurant lists the dishes that are available now along with simple adaptations to those dishes, then these menus are sent to customers when they contact the restaurant. When the code receives an order, it'll also check that order against the list of dishes it sent to see if the customer is selecting one of the choices.
Script using sheet tab
You don't need to touch this one at all — it's just a precaution to avoid our code accidentally overwriting itself.
Imagine a situation where our code gets an order, finds the first empty row in the orders sheet, and writes that order down there. However, at the same time, someone else makes an order for the same restaurant, another instance of our code also looks for the first empty row, selects the same one, and they both write in it at the same time. We'd lose at least one order even though the code thinks everything is fine.
To try to avoid that, when our code starts to use the sheet, the first thing it does is change the "Script using sheet" value to TRUE and writes down when it starts using it. Then, when it's done, it changes the value back to FALSE.
If our script goes to use the sheet and sees that "Script using sheet" is set to TRUE, it'll wait until that value becomes FALSE and then write down the order.
How do I use the sheets?
Example restaurant sheet:
- Make a copy of the example restaurant sheet.
- Fill out all the details for your test restaurant.
- Copy the URL of the sheet.
Lookup sheet:
- Make a copy of the lookup sheet (you'll only need to create one).
- Don't delete anything in the "extracted id" column but replace everything else.
- Put your Twilio number in the first column.
- Paste the URL of your test restaurant in the Business Sheet URL column.
- Add your business' phone number in the final column.
- Find the "Service Account" email address (which I'll direct you to in the Cloud Functions section).
- Make sure that both sheets are shared with that email address having edit access.
Creating a new restaurant:
- Any time you need to create a new restaurant, just make a copy of the restaurant sheet.
- Make sure you tick "share with the same people" when you're copying it.
- Clear out the current details.
- Paste the new Google Sheet URL in a new line of your lookup sheet.
When the code runs, it'll open up the lookup sheet, use the Twilio phone number to find the specific sheet ID for that restaurant, go to that sheet, and return the menu.
Google Cloud Functions
Google Cloud Functions is a simple way to automatically run code online without having to set up servers or install a whole bunch of special programs somewhere to make sure your code is transferable.
If you don't want to learn more about Google Cloud and just want code to run — here's the free chatbot Python code.
What is the code doing?
Our code doesn't try to handle any of the actual conversations, it just gets requests from Twilio — including details about the user and what stage they are at — and performs some simple functions.
Stage 1: "Start"
The code receives a message from Twilio including the Twilio number that was activated and the stage the user is at (start). Based on it being the "start" stage, the code activates the start function.
It looks up the specific restaurant sheet based on the Twilio number, then returns the menu for that restaurant.
It also sends Twilio things like the specific restaurant's number and a condensed version of the menu and additions for us to check orders against.
Stage 2: "Chosen"
The code receives the stage the user is at (chosen) as well as their order message, the sheet ID for the restaurant, and the condensed menu (which it sent to Twilio before), so we don't have to look those things up again.
Based on it being the "chosen" stage, the code activates the chosen function. It checks if the order matches our condensed menu. If they didn't, it tells Twilio that the message doesn't look like an order.
If the order does match our menu, it writes the order down in the first blank line. It also creates an order ID, which is a combination of the time and a portion of the user's phone number.
It sends Twilio a message back saying if the order matched our menu and, if it did match our menu, what the order number is.
Stage 3: "Arrived"
The code receives the stage the user is at (arrived) and activates the arrived function. It also receives the message describing the user's vehicle, the restaurant-specific sheet ID, and the order number, all of which it previously told Twilio.
It looks up the restaurant sheet, and finds the order ID that matches the one it was sent, then updates that row to show the user has arrived and the description of their car.
Twilio handles all the context
It might seem weird to you that every time the code finds some information (for instance, the sheet ID to look up) it sends that information to Twilio and requests it afresh later on. That's because our code doesn't know what's going on at all, except for what Twilio tells it. Every time we activate our code, it starts exactly the same way so it has no way of knowing which user is texting Twilio, what stage they're at, or even what restaurant we're talking about.
Twilio remembers these things for the course of the interaction, so we use it to handle all of that stuff. Our code is a very simple "do-er" — it doesn't "know" anything for more than about five seconds at a time.
How do I set up the code?
I don't have time to describe how to use Google Cloud Functions in-depth, or how to code in Python, but the code I've shared above includes a fair number of notes explaining what's going on, and I'll talk you through the steps specific to this process.
Step 1: Set up
Make sure you:
- Have a Google account
- Go to Google Cloud Console
- Set up billing for your account (until you do, it won't let you create functions)
- Copy the Python code from the location I linked to above
Step 2: Create a new function
Go here and click "create a new function". If you haven't created a project before, you might need to do that first, and you can give the project whatever name you like.
Step 3: Set out the details for your function
The screen shot below gives you a lot of the details you need. I'd recommend you choose 256MB for memory — it should be enough. If you find you run into problems (or if you want to be more cautious from the start), then increase it to 512MB.
Make sure you select HTTP as the trigger and note down the URL it gives you (if you forget, you can always find the URL by going to the "Trigger" tab of the function).
Also make sure you tick the option to allow Unauthenticated Access (that way Twilio will be able to start the function).
Select "Inline editor" and paste in the Gist code I gave you (it's heavily commented, I recommend giving it a read to make sure you're happy with what it's doing).
Click "REQUIREMENTS.TXT" and paste in the following lines of libraries you'll need to use:
- flask
- twilio
- pytz
Make sure "function to execute" is SMS, then click the "Environment Variables" dropdown.
Just like I've done above, click "+ ADD VARIABLE", write "spreadsheet_id" in the "Name" column, and in the "Value" column, paste in the ID of your lookup sheet. You get the ID by looking at the URL of the lookup sheet, and copying everything between the last two slashes (outlined in red below).
Click on the "Service account" drop down. It should come up with just "App Engine default service account" and give you an email address (as below) — that's the email address you need all of your Google Sheets to be shared with. Write it down somewhere and add it as an edit user for both your lookup and restaurant-specific sheets.
Once you've done all of that, click "Deploy".
Once you deploy, you should land back on the main screen for your Cloud Function. The green tick in the top left hand corner tells you everything is working.
Step 4: Turn on Sheets API
The first time your code tries to access Google Sheets, it might not be able to because you need to switch on the Google Sheets API for your account. Go here, select the project you're working on with the dropdown menu in the top left corner, then click the big blue "ENABLE" button.
Step 5: Go back to Twilio and paste in the HTTP trigger for your code
Remember the trigger URL we noted down from when we were creating our function? Go back to your Twilio Studio and find all of the blocks with the </> sign in the top left corner:
Click on each in turn and paste your Google Cloud URL into the REQUEST URL box that comes up on the right side of the screen:
Test the bot
By now you should have your Cloud Function set up. You should also have both of your Google Sheets set up and shared with your Cloud Function service account.
The next step is to test the bot. Start by texting your Twilio number the word "order" to get it going. It should respond with a menu that your code pulls from your restaurant-specific Google Sheet. Follow the steps it sends you through to the end and check your Google Sheet to make sure it's updating properly.
If for some reason it's not working, there are two places you can check. Twilio keeps a log of all the errors it sees which you can find by clicking the little "Debugger" symbol in the top right corner:
Google also keeps a record of everything that happens with your Cloud Function. This includes non-error notifications. You can see all of that by clicking "VIEW LOGS" at the top:
Conclusion: break things and have fun
All of this is by no means perfect, and I'm sure there's stuff you could add and improve, but this is a way of building a network of scalable chatbots, each specific to a different business, and each partially managed by that business at minimal cost.
Give this a try, break it, improve it, tear it up and start again, and let me know what you think!
Postscript: weird hacks
This bit is only really for people who are interested, but because we've deliberately done this on a shoestring, we run into a couple weird issues — mainly around requests to our bot when it hasn't been activated for a bit.
When Twilio gets messages for the first time in a while, it turns on pretty quickly and expects other things to do so, too. For example, when Twilio makes requests to our code, it assumes that the code failed if it takes more than about five seconds. That's not that unusual — a lot of chat platforms demand a five-second max turnaround time.
Cloud Functions are able to run pretty fast, even with lower memory allowances, but Google Sheets always seems to be a bit slow when accessed through the API. In fact, Google Sheets is particularly slow if it hasn't been accessed in some time.
That can mean that, if no one has used your bot recently, Google Sheets API takes too long to respond the first time and Twilio gives up before our code can return, causing an error.
There are a couple parts of our script designed to avoid that.
Trying again
The first time we activate our Cloud Function, we don't want it to actually change anything, we just want information. So in Twilio, we start by creating a variable called "retries" and setting the value as 0.
If the request fails, we check if the retries value is 0. If it is, then we set the retries value to 1 and try again. If it fails a second time, we don't want to keep doing this forever so we send an error and stop there.
Waking the sheet up
The second time we activate our Cloud Function we do want it to do something. We can't just do it again if it doesn't return in time because we'll end up with duplicate orders, which is a headache for the restaurant.
Instead, during an earlier part of the exchange, we make a pointless change to one of our sheets, just so that it's ready for when we make the important change.
In our conversational flow we:
- Send the menu
- Get the response
- Ask for the user's name
- Write the order
We don't need to do anything to the sheet until step four, but after we get the user's response (before we ask their name), we activate our code once to write something useless into the order sheet. We say to Twilio — whether that succeeds or fails — keep going with the interaction, because it doesn't matter at that point whether we've returned in time. Then, hopefully, by the time we go to write in our order, Google Sheets is ready for some actual use.
There are limitations
Google Sheets is not the ideal database — it's slow and could mean we miss the timeouts for Twilio. But these couple of extra steps help us work around some of those limitations.
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!
Marketing Strategies
How Broadcast Journalism Helped Me Pivot to Social Media Management
Pivoting from a career in broadcast journalism was a big decision for me.
I loved everything about a newsroom environment: the breaking news, researching topics, identifying sources for stories, and feeling like I had a pulse on trends and issues taking place in the world.
I was successful at it, too. In fact, I worked at some of the biggest news corporations in the world, including CNN, ABC News, CBSLA and others.
However, at some point — because I was spending so much time on social media listening for breaking news and looking for story ideas — my interest in social media evolved.
I knew I wanted to make a transition, but I was scared of taking a leap and pivoting to social media marketing.
Today, I can tell you that I'm so happy I did. I learned that my job is not my entire identity, and through journalism, I have so many transferrable skills to thrive in any industry.
Switching careers can feel exciting, but comes with feelings of self-doubt and anxiety.
Here, I want to highlight how broadcast journalism helped me succeed in social media, and tips you can use if you're considering a career shift of your own.
7 Takeaways From Journalism You Can Apply to Social Media
1. Ask the 5 W questions.
Who? What? Where? When? and Why? These questions are ingrained in any journalist.
The foundational questions to news gathering also apply in the context of content creation, marketing plans, and any content strategy. For instance, any marketer likely asks these questions daily:
Who is this message for?
What is the core message we want them to take away from this?
When (and where) are they most likely to be to consume this message?
Why should they care?
"Why" also goes a little deeper in social media. The internet is flooded with information and it's your job to capture someone's attention — and hold their attention for your content.
Why would someone click on this ad?
Why are we targeting this group?
Why is it important that they see this message?
The root of these questions have helped me cut through the jargon of promotions and company announcements to get to the root of the message in the simplest words.
Pro Tip: In journalism school, I learned to simplify the facts by "explaining this story to my mom." This framework has really helped me simplify information down to its core. I practice this often when trying to take a complex company announcement and whittle it down to its simplest takeaway.
2. Focus on the core story, not the details.
When it comes to creating content, journalists have a unique element they bring to the table: storytelling.
Some people may get caught up in numbers, the tagline, a paragraph in an announcement, and so on.
As a former journalist, I think about the core of the message we want to convey in a social post.
The key takeaway could involve visual elements and emotional triggers, but its foundation will include a concise message or story.
3. Keep up-to-date on industry and competitor trends.
The advantage journalism has provided me when it comes to conducting research is that, even if you have an intuitive sense of your audience, your journalism instincts still compel you to "look into it" and confirm your hypothesis.
For instance, for conducing market research — including what my audience is feeling, thinking, struggling with, dreaming of, reading about, etc. — I put my "investigative" hat on and look within Facebook Groups, or other websites where people can leave comments or questions (such as Quora or Amazon reviews) to gather information about what my audience is seeing, thinking, and feeling.
Additionally, a couple of keyword searches gives me a framework to work with while doing research.
Referring to the latest studies, trends, and reports helps me identify any overlaps and enables me to be a successful social media professional because I keep a pulse on issues that are top-of-mind to my audience.
A little research goes a long way in social media content and writing.
Journalists are naturally curious people, so we sometimes find ourselves entertained by trends and topics that get people talking. We like to quickly parachute in on behavior like this and figure out what the hype is all about, source who started it, and figure out why it's taking off.
It's amusing, to say the least, but this innate skill in journalists has helped me in social media because I can (for the most part) keep up with the latest memes, videos, or other trending news that's popular that day or week. It also helps me recall previous news events or trends that were popular in the past.
Context of topics, audiences, and trends helps me while making editorial or marketing decisions and creating content.
4. Create quality content, even with minimal assets.
When it comes to content creation, journalists have had to work with little or major constraints when it comes to telling a story. You might have only a few usable sound bites, poor video quality, or you're working with only sound.
Broadcast journalism helped me feel comfortable with improvising and maximizing any assets available.
I learned how to do video, audio and photography editing. I learned different storytelling formats such as radio, TV, print, and online, as well as how to distinguish each piece (i.e. infographic, video, blog post, listicle) and how to adapt them to different social media platforms.
I learned to do this in the most concise way possible, which helped me tremendously while writing short headlines and easy-to-understand text that includes a call to action.
5. Write concisely, and make every word count.
Whether it's copywriting, writing in a brand's voice, creating catchy headlines and titles, creating copy that converts a user, incorporating a call-to-action, or enticing a reader to learn more … it's all important in social media.
Broadcast journalism helped my social media career with my writing skills alone. Ultimately, packaging information in a concise way is so important in social media.
Twitter has a 280 character limit. However, I'm proud that I learned how to write tweets when it had a 140-character limit — including character counts toward photos, videos, and GIFs that were attached!
Brevity is always a best practice when it comes to writing on social media, and broadcast journalism has helped me succeed in that regard.
Effective writing helps your audience understand you, what you offer, and your value and is a critical skill for attracting an online audience.
Pro Tip: Practice reading your words out loud to catch typos or awkward sentence structures. I learned this while writing copy for TV news and it has helped me tremendously while crafting social media posts.
6. Learn how to communicate effectively in crises.
Social media is an extension of any brand, and understanding when something is a reputational risk is important.
My career in broadcast journalism helped me identify potential pitfalls or anticipate remarks people might make. The last thing I want to do is appear tone-deaf or miss the mark with marketing messages.
Working in broadcast journalism has trained me to never lower my guard and always keep my eyes open for threats or liabilities in social posts, marketing campaigns, and imagery.
I also understand news cycles, and during a crisis, I've learned how to evolve and adapt to new circumstances and information.
For example, during a crisis such as the COVID-19 pandemic, there were different phases of crisis communication companies needed to understand. It was important to pause, pivot marketing and messaging, and identify pain points and re-position your brand, among other things.
Working with so many PR and marketing professionals over the years taught me about how to "own the narrative" of a brand's story and to serve as a brand steward on social media.
7. Stay resourceful and help your audience find answers to their needs.
I say I'm a digital content strategist, but really, I'm a professional problem-solver.
If I don't have an answer, I'll either find the answer or find someone who does.
Broadcast journalism taught me to be resourceful, help my audience with valuable and actionable information, and think quickly on my feet and pitch smart angles.
I've come across so many random scenarios while working in social media, including:
- Converting and transferring files
- Helping people with their wifi
- Syncing folders on Sharepoint
- Identifying fonts
- Pitching a story on behalf of the company
- Finding alternative channel or format to communicate a message
- Sourcing video to its original owner
You name it, I've probably helped someone figure something out, and because of it, I'm an invaluable asset to my team and my company.
I solve people's problems (in person and online) which makes me feel like I'm doing a great social service.
Journalists have a big opportunity in the marketing, social media, content strategy, storytelling and advertising space — if you are on the fence, I encourage you to take the leap.
Marketing Strategies
New Research: Marketers Increase Investment In ABM Following Early Success; Still Struggle With Data And Measurement
COVID-19 has caused many B2B marketers to double down on ABM and engage their audiences with account-based targeting and insights. With social distancing influencing how marketers operate, ABM has become integral to adapting business operations to better cater to audiences that are in-market.
New research from ABM platform Demandbase indicated that businesses with mature ABM programs have increased their budgets for their ABM plays by 40% — 77% higher than businesses whose ABM programs are in their infancy. As a result, 22% of businesses reported a 28% higher budget allocation in 2020 than in 2019.
Demandbase's 2020 ABM Market Research Study surveyed 900 employees from B2B businesses such as Drift, Bombora, Uberfip, Outreach, PFL and more, to gauge the impact of ABM strategies on marketing and sales alignment, content and account selection. The report highlights the differences between businesses with mature ABM programs and those with developing ABM strategies, showing how a business' level of investment in account-based leads and content can result in higher ROI.
The report also explored the key characteristics among businesses with the most success in ABM, analyzing their full ABM plays, as well as their expertise in all aspects of ABM, including measurement.
Other key takeaways from the research include:
- The highest performing businesses worked closely with their marketing teams to unify their channel engagement and tactics;
- Teams still struggle with measurement due to traditional lead-based habits;
- 43% of B2B companies treated the alignment of marketing and sales processes as a top priority in 2020;
- Without ABM, 83% of businesses cannot use their CRMs properly, 60% cannot use LinkedIn and 73% fail at marketing automation;
- Data quality was cited as the biggest challenge for implementing ABM strategies; and
- More ABM strategies involved the integration of solutions and IT.
"We're always eager to hear directly from marketers and learn from their experiences," said Peter Isaacson, Chief Marketing Officer at Demandbase, in a statement. "This research reveals a lot about how ABM is fueling growth in the B2B world. It reinforced what we've believed for a long time now, that the companies that have the proper ABM foundations in place and have been dedicated to the strategy for the long haul enjoy very high levels of success. It also proves the value of such an approach for companies of all sizes."
Demand Gen Report had the opportunity to sit down with Brian Finnerty, VP of Growth Marketing at Demandbase, to dive deeper into the report and expand on the impact of ABM on the B2B industry.
Demand Gen Report: The report states that ABM budgets are increasing year over year, with 2019 to 2020 having probably the biggest jump. Why have budgets for ABM increased so drastically?
Brian Finnerty: Budgets have risen fairly substantially, basically it's been a 20% increase year over year in ABM investments. In 2019, companies were allocating 20% of their total marketing budget to ABM, which is pretty amazing. ABM hasn't been around that long, but to see that investment has gone from 20% to 28% in 2020 is a pretty massive boom.
The first thing I take from that is the reason budgets are increasing for ABM is because companies are having success with ABM. ABM providers are showing ROI and showing companies that if you do a split test between more traditional demand gen and ABM, the results are hard to deny. If you're getting increased ROI from ABM, generating more pipeline more closed-won business and expanding your existing accounts, versus your more traditional demand gen at reach, it's pretty clear where you're going to put your money. To some degree, money talks, and if marketers are investing more money in ABM, that means that they're seeing a better return.
ABM over the past number of years has been able to show measurable results and you can link an account-based approach to increased pipeline generation and close-won rates, as well as increased deal velocity and increased retention of existing clients. That is why budget allocation has changed and why people continue to put more of their overall marketing budget into ABM. You're always going to spend some of your budget on PR and communications and brand building. There are just certain marketing costs that you're always going to have to support. But when you look at demand generation, an account-based approach is really taking precedence because quite honestly, it's showing results.
DGR: One of the big aspects of ABM is the quality of data, but the report said that one of the biggest challenges is having that high-quality data. Why is it so difficult for B2B orgs to secure and maintain high-quality data?
Finnerty: In an ABM context, data is everything. When you're focusing on your target accounts, and you're focusing on the right people in those accounts, that's a complex data problem. And while the data sources have improved over the years, and we've got access to a number of good data sources on accounts, it's still a challenge. And there's still misfires where companies get wrongly classified or subsidiaries within an organization are considered in isolation. Our data on accounts is always improving, but it's critical to have that data so that you can build the right targeted canvas. And then within that, having data on the right people at those accounts is another challenge.
One of the challenges is a very simple one. People change roles and move on all the time. Somebody moves from a VP of Marketing role in a digital advertising company and becomes the VP of Marketing at a financial services company, and often there's a lag there. LinkedIn is probably one of the quickest data sources to update because people will update their job descriptions and job titles there. You'll often find yourself a couple of months behind, and that can be a real burn for an account-based approach because you're still assuming someone is at a particular company and you have these orchestrated plays around reaching them. You may not know that they left a month ago or they've gone on maternity leave. If your data is not up to date, you're burning money and burning it in the wrong places.
That's why you'll see 43% of respondents in the survey who have such a strong ROI on ABM cite improving data quality as a challenge. It's undeniable that with the wrong kind of data, you're in trouble.
DGR: The survey showed that alignment is important for ABM, and that 43% of companies are starting to align their sales and marketing teams in order to succeed in 2020. Why is alignment so critical to successful ABM?
Finnerty: When I see a stat like that, it definitely makes you sit up and take notice. That's a lot of people who say sales and marketing alignment is just a critical factor of success. I think when ABM is executed successfully, your sales and marketing teams are moving in lockstep; they are very tightly aligned.
When you're running multichannel campaigns, you know to reach the right accounts and the buying committee at the right accounts. If sales and marketing aren't aligned correctly, then you're going to have what I call a 'leaky funnel.' You could have marketing running a beautifully executed direct mail campaign to hit CMOs and the sales team doesn't follow up for a day, a week, a month, never. Unless you've got a highly orchestrated play around your campaigns that involves marketing and sales touches, you're essentially going to drop the ball. You're essentially wasting money.
One of the beauties of account-based marketing is those differences just melt away. You've got sales and marketing marching to the beat of the same drum. The common metrics that you're looking at are pipeline, closed-won business and potential expansion within existing customers. If you can get your sales and marketing teams aligned around those three metrics, that is a fundamental step forward for aligning your sales and marketing team. If you give people a shared goal, invest the budget and spend towards reaching that goal, they're all marching in the same direction. Your chances for success are just infinitely higher.
DGR: How are marketing teams using ABM to unify their efforts and tactics?
Finnerty: There's some very strong data in the report to show that a large percentage of companies are adopting ABM, certainly companies with a thousand employees and above. The adoption rates are high. You're also seeing that within the increasing budgets as well. Marketing teams are adopting ABM at a greater pace and volume than ever before.
One of the ways I think marketing teams are using ABM most effectively now is by defining all their efforts around a target set of accounts. The biggest thing that you can do is unified account information, so that you are identifying your target account list, making sure the right accounts are included on that target account list and then you're orchestrating all of your sales and marketing efforts around those accounts. A lot of people forget that that should be an organic exercise. You don't just set your target account list that started here and just walk off and forget about it. It really is an organic, living, breathing thing. The important point is that you need to revisit your targeting list regularly to make sure that it includes the right accounts and that you're excluding accounts from industries that are, for whatever reason, under serious pressure.
Having a unified account foundation and making sure that you are going out to the right accounts, and that you refresh that list of target accounts regularly ensures that you are spending your budget on the right accounts, and the right people in those accounts that have budget and are willing and able to buy your solution. If you forget your target account list and just keep plowing campaign dollars towards those accounts, that's simply not sustainable.
DGR: Which channels are the most effective when conducting ABM plays? And how does choosing the right ones significantly help when implementing an ABM strategy?
Finnerty: The report showed that there are three channels in particular that are really strong for ABM. The first one is direct mail, which had over 63% of investment from companies. The second one was content, which came in around 55%. And the third one was targeted account selection, which came in at 52%.
Of all the areas that people plan to invest most, direct mail has made a real resurgence, since direct mail is an old marketing tactic. In an ABM world where you're narrowing your focus to a set of target accounts and the buying committee of those accounts, direct mail can be an incredibly effective way of reaching the buying committee at the right accounts. And I think that's partly why direct mail has adapted to build full platforms to allow you to deliver and get stuff returned. Since everybody's working from home, a lot of folks have pivoted to virtual gifting and E-gifting so that you can still reach those folks at the buying committee and offer them something of value.
Over the years, content has become so important to everything that we do. This survey that we produced is a piece of content, and we've promoted it and had a very strong response to it. People don't want more bad content; they want the right content at the right time — stuff that genuinely adds value and insight. If you can produce high-quality content, it presents your company as a thought leader and actually helps people make the right decisions.
Something else to point out to folks is that ABM should be multi-channel. I don't think there's a single channel that you absolutely rely on as an ABM practitioner since you're essentially going to be running plays across all of your channels so you're reaching the buying committee at the right accounts.
How to Be More Creative
Dorothy Theresa Sawchak Mankiw
1 Month Follow Up for My Pet Waste Removal (Poop Scooping) Business
Bernice King, Ava DuVernay reflect on the legacy of John Lewis
Heavy rain threatens flood-weary Japan, Korean Peninsula
Everything New On Netflix This Weekend: July 25, 2020
Business2 weeks ago
Bernice King, Ava DuVernay reflect on the legacy of John Lewis
World News2 weeks ago
Heavy rain threatens flood-weary Japan, Korean Peninsula
Technology2 weeks ago
Everything New On Netflix This Weekend: July 25, 2020
Finance3 months ago
Will Equal Weighted Index Funds Outperform Their Benchmark Indexes?
Marketing Strategies7 months ago
Top 20 Workers' Compensation Law Blogs & Websites To Follow in 2020
World News7 months ago
The West Blames the Wuhan Coronavirus on China's Love of Eating Wild Animals. The Truth Is More Complex
Economy9 months ago
Newsletter: Jobs, Consumers and Wages
Finance8 months ago
$95 Grocery Budget + Weekly Menu Plan for 8


text:
WOODLAND – The Historic Downtown Woodland Group is proud to bring you Thursday Night Live at the Plaza in Woodland, CA for the third year in a row this June 2019. Offering local and regional bands, each with their own … Read More
Thursday Night Live at the Plaza
Reiffs Gas Station Museum
Reiffs Gas Station Museum 2 ImageHover Effects Reiff's Gas Station Museum is a museum in Woodland, California which is best known for its collection of antique gas pumps, gas station signs and other car culture memorabilia from the 1960s, 1950s … Read More
The Capay Almond Festival 2019
CAPAY VALLEY – Celebrate the blossoming almonds at the beautiful and unique Capay Valley Almond Festival! The Capay Valley Almond Festival began in 1915 and has long been a Northern California tradition. The only six town event in Northern California, … Read More
Foodie Meet Up with Father Paddy's
Traveling – it leaves you speechless, then turns you into a storyteller

subset: commoncrawl


text:
2020-21 WPI Swimming and Diving News
NEWMAC Presidents Council's Statement on Winter SportsNovember 02, 2020Westwood, MA --- The NEWMAC Presidents Council has continued to monitor the effects of COVID-19 on our institutions and community during the fall semester and remain steadfast that the health and safety of students, faculty, staff and greater community remain paramount and the focus of our concerns. Due to the shift in academic calendars, specifically the later start than normal of the second term and the majority of institutions imposing restrictions of both visitors on campus and travel off campus in an effort to reduce the potential spread and exposure of COVID-19, the Presidents have unanimously decided to suspend conference play and championships for winter sports. This includes men's and women's basketball and men's and women's swimming and diving.
"I Know What You Did Last Summer" with Swimming and Diving's Daire DalySeptember 30, 2020
SUMMER REWIND: 400 Free Relay Sets School Record as Women's Swimming and Diving Take Third at NEWMACsAugust 19, 2020Cambridge, MA --- Five top-10 finishes propelled the WPI women's swimming team to a third place finish in the NEWMAC Championship at MIT on Sunday night. The third place finish marked the second best finish for the team, bested only by their second place finish at home in 2017.
Donate Now to the Goat Nation Giving Challenge!August 17, 2020Due to the Covid-19 pandemic, WPI's Athletic department is facing a different sports year. While our student-athletes won't be competing this fall and early winter, we are committed to making the most out of the situation and will provide quality experiences for our student-athletes with enhanced strength & conditioning opportunities along with skill development, team bonding, and leadership development. In order to meet the federal and state health guidelines for workouts, all physical activities will be moving outdoors as much as possible and indoor facilities will be rearranged to comply with new restrictions.
SUMMER REWIND: Staubi Snags Silver as Men's Swimming and Diving Places Third at NEWMAC ChampionshipsAugust 14, 2020Cambridge, MA --- Another NCAA B cut time, and a third place relay finish helped the WPI men's swimming team to third place in the NEWMAC Championships Sunday night in Cambridge. After a pair of fifth place finishes on Saturday, Kyle Staubi took second in the 200 Back final in a time of 1:49.32 Sunday notching an NCAA B cut time in the process.
NEWMAC Announces Five-Year Strategic PlanAugust 12, 2020Westwood, MA --- With the unanimous support of the Presidents Council, the New England Women's and Men's Athletic Conference (NEWMAC) is releasing its five-year Strategic Plan announcing Four Strategic Pillars to guide the conference through the 2024-2025 academic year. Reaffirming the conference's commitment to academic and athletic excellence, the Presidents endorsed a plan that focuses on student-athlete well-being, diversity and inclusion and leadership.
Williams, Both Swimming and Diving Teams Draw Scholar All-America Awards from CSCAAJuly 29, 2020WORCESTER -- Sid Williams was honored as a Scholar All-America by the College Swimming & Diving Coaches Association of America (CSCAA), while both the men's and women's programs were named as Scholar All-America Teams. The Scholar All-America award recognizes students who achieved a grade point average of 3.50 or higher and were invited to compete at their respective national championship. Selections were drawn from 209 colleges and universities.
Purchase WPI Athletics FacecoveringsJuly 24, 2020WPI Physical Education, Recreation & Athletics is excited to offer WPI Athletics inspired face coverings! Order: bit.ly/2CBDtqR All profits will go towards diversity, equity and inclusion programming at WPI. Face coverings will be shipped directly to the customer.
WPI Athletics Announces Update For 2020 Fall SemesterJuly 17, 2020Sports and recreation are important to our community. WPI students and staff rely on the sports and recreation facilities to help with their personal wellness, while competing in varsity sports, Club, and intramural activities provides a healthy outlet for students all across campus. Unfortunately, in reviewing the significant challenges related to the COVID-19 pandemic, WPI has made the difficult decision to not compete in athletic competitions this fall and through Dec. 31. While we acknowledge how disappointing this news is, the health and safety of our entire WPI community remains our top priority.
WPI Athletics July 1st UpdateJuly 01, 2020Sports and recreation are important to our community. WPI students and staff rely on the sports and recreation facilities to help in their personal wellness, and competing in varsity sports, club sports and intramurals provides an outlet for students all across campus. WPI is diligently working within guidelines developed by local, regional, and national athletics agencies so we may safely provide robust access to facilities and programming throughout this pandemic. At this time, no decision has been made regarding when to resume varsity or club sports.
WE ARE WPI: The Year Ahead—Moving Forward MindfullyJuly 01, 2020WPI is moving forward to welcome our community back to campus for the new academic year. Driven by science, we have engineered a plan that adjusts our academics, research, projects, work life, residential life, dining, clubs and activities, athletics, and events in order to reopen our campus in a safety-focused, socially distanced manner. It's a plan that needs your pledge to rethink routines and react responsibly—as the health, safety, and well-being of our community must be the highest priority for each of us.


text:
Tag Archives: Puck
NHL Playoffs – Day 1 RecapLeave a comment
May 1, 2013 9:00 AM by Smash
The Stanley Cup playoffs are officially underway. Last night, we saw three games. The Wild faced-off against the Blackhawks in …
Continue reading
It's Playoff Time1
April 29, 2013 11:31 AM by Smash
So we've finally arrived at the Stanley Cup Playoffs. After a shortened 48 game season, the match ups have been …
Continue reading
Weekly NHL Recap: April 14th – April 20thLeave a comment
April 21, 2013 2:37 PM by Smash
Let's get right to it today: the playoff picture. At the start of the day, 5 teams in the Eastern …
Continue reading
Blackhawks Announcers Can't Hold it Together After Saying "Wee-Knee"Leave a comment
April 19, 2013 10:15 AM by Smash
Nothing beats a couple of grown ass men trying to act professional while not being able to hold in their …
Continue reading
Weekly NHL Recap: April 7th – April 13thLeave a comment
April 14, 2013 1:02 PM by Smash
On Wednesday, New Jersey Devils Anton Volchenkov dropped a high, dirty elbow on the Bruins Brad Marchand. Marchand suffered a concussion …
Continue reading
Weekly NHL Recap: March 31st – April 6th8
April 7, 2013 11:03 AM by Smash
The trade deadline has come and gone and we're in the middle of a tight playoff push in the Eastern …
Continue reading


text:
Watson and Holmes by Karl Bollers and Rick Leonardi is a comic book reimagining of Sir Arthur Conan Doyle's stories featuring Sherlock Holmes and John Watson as African Americans in New York City's Harlem district. The project, which claims to be the "first African-American Sherlock Holmes series" is currently seeking funding on Kickstarter.
Follow Laughing Squid: Facebook | Twitter | Google News


text:
Sheffield Wednesday 0 Swansea 0: No revenge for Carlos Carvalhal as drab match goes to replay
There was no revenge for Carlos Carvalhal, just a collective shrug of indifference from his former club Sheffield Wednesday, a stalemate and a FA Cup replay that his new team, Swansea City, would have preferred to avoid.
In fact, for all the supposed excitement generated by his return, less than two months after he was sacked by the Championship club, this was an underwhelming cup tie between two sides who huffed and puffed but rarely looked like blowing any doors down.
Carvalhal was warmly applauded off the Swansea coach by the Wednesday supporters who had bothered to congregate outside the players' entrance to greet him, and that was it.
There was no emotion, no suggestion of animosity, just ambivalence. It was the equivalent of an ex walking into a bar with a glamorous new partner and barely bothering to look in their former lover's direction. It was a very Yorkshire reaction.
Carvalhal may have moved on to better things since Wednesday sacked him on Christmas Eve, re-emerging three days later as a replacement for Paul Clement at Swansea, but nobody in Sheffield seems to much care.
He led them to two play-offs, losing in the final to Hull in 2016 and the semi-finals to Huddersfield last year, but there was little opposition to his sacking and nothing to suggest anyone feels it was a mistake now, despite the fine job he has done in South Wales since.
His former employers have remained stuck in the rut he left them in, the anticipated uplift under his replacement, the Dutchman Jos Luhukay, yielding an FA Cup run, but just one league win. Whatever the problems were, Luhukay has not solved any of them quickly.
This looked like the perfect time for Carvalhal to make a point, but having rested key players because of the ongoing relegation battle, Swansea were unable to dispose of spirited opponents.
"We didn't want a replay," said Carvalhal, who revealed Alfie Mawson locked his knee warming up and had to be taken out of the starting XI. "The games for us are like the Police Academy films – there are too many of them.
"It was a very emotional moment for me, and I must thank Sheffield Wednesday for the way they received me. It was very nice. I'm very proud of what I achieved here, and I'm sure in five years the reaction will be even better. It has only been eight weeks."
Wednesday started superbly but did not make the most of either their possession or their chances. The best of them came inside the first two minutes as Adam Reach surged clear, but his shot, with his weaker right foot, was well saved by Kristoffer Nordfelt.
They carved Swansea open again minutes later, but Jacob Butterfield's glancing header from George Boyd's cross flew closer to the corner flag than the goal.
Swansea spluttered their way through much of the first half and took 30 minutes to muster an effort on goal, a deflected shot from Kyle Naughton which trickled out for a corner.
They gradually became more of a threat and should have taken the lead just before half-time when Naughton swung in a cross that was met by Mike van der Hoorn on the edge of the six-yard box. He did everything right, but his header was brilliantly saved by Wednesday's 22-year-old, third-choice goalkeeper, Cameron Dawson, who clawed it over the bar.
They may well have deserved a penalty too. Certainly, Daniel Pudil was fortunate none of the match officials appeared to see him push Tammy Abraham to the ground while defending a corner.
Wednesday started the second half with renewed vigour, but their lack of a goal threat when the ball did arrive in the area nullified the vibrancy of their build-up play. Swansea were not any better, substitute Jordan Ayew summing up their afternoon when he decided to shoot from 25 yards rather than pass to better-placed team-mates.
"We had a strong beginning and we played some very good football," said Luhukay. "We didn't really want a replay, but the players made me proud, and we will try to win at Swansea.
"Swansea were better in the second half, but I think this was a fair result."
90 mins +2
Big chance! Joao links with Nuhiu, who shapes to shoot and then plays in Reach to his right! He's in! Can he finish from here?! He passes across the six yard box towards Joao at the back post! He can't get anything on the shot! With his back to goal he tries a backheel but puts it wide and was offside anyway.
88 mins
Joao and Nuhiu try to batter their way past the defence to shoot from 20 yards, are blocked and then Swansea try to break. They can't! The home crowd roar their team on... but they lose the ball far too easily and now Clucas brings it forward. Wednesday defending with a back five but that doesn't even matter since Routledge's touch is so poor he gifts the ball back to Reach and then gives away a free-kick.
86 mins
Sheffield Wednesday are tired. Reach has a couple of goes at Ki before taking him down and is booked, the free-kick is taken short and Routledge lifts the ball into the area towards Ayew.
Clucas rides a challenge on the left, crosses low to Dyer but his first touch puts the ball in the air and the defence has time to get in and clear. Swansea have surrounded the penalty area... but an outball to Nuhiu results in a free-kick to Wednesday.
80 mins
Wallace puts a really sore one on Naughton and is called out for it, squaring up to several players afterwards. He's been booked, Swansea now don't like him and I'd suspect that won't be the last we see of Wallace for the rest of the game.
Sam Clucas is on for the final 10 minutes, Swansea really don't want this to go to a replay.
The free-kick is put into the area from 40 yards and it's a great ball! BARTLEY MUST SCORE! But he swings at air and misses the ball. Wednesday have gotten away with that one.
77 mins
What is this nonsense. Roberts tries to take a throw-in, Wallace is on the floor behind him and tries to like... grab him? And Roberts ends up falling over, Wallace holds his leg and looks to be in pain... and the referee just doesn't care.
Wednesday come forward now, Hunt bursts forward from a one-two and moves into the box, Nuhiu has it and what a turn! He spins his marker and has space in the box, cuts onto his left foot... and shoots low at the near post. The goalkeeper saves and smothers the rebound.
71 mins
Routledge tries to do a little too much, taking on two defenders at once and attempting to roll the ball into the bottom corner of the goal from just inside the area. He wins a corner though and that is sent into the area... and Sheffield Wednesday win it back and try to counter. An attempt to play a pass ahead of Boyd into space is woeful and hands possession back.
66 mins
Narsingh comes off after a poor game and Dyer comes on. Van de Hoorn catches Hunt with his studs while going for the ball and is booked for it. It looks like he's stepped with some weight on the guy's toe and he's very upset about it. This is a decent set piece position, wide right in line with the penalty area. Butterfield and Wallace are there... but someone is offside. So bad.
Abraham is taken off for Jordan Ayew. How will a tiring defence cope against him?
53 mins
Routledge finds Roberts on the right, Roberts tries a strange cross/shot thing which is easily cleared. Olsson comes inside from the left and has a similar effort blocked. Nuhiu chases the ball and does a little roulette turn which delights everyone in the crowd - like watching a bear do ballet.
51 mins
Swansea have to do a bit of defending as Sheffield Wednesday get the ball forward but there's nothing too much to worry about. You get the feeling that if Swansea really wanted to they could get themselves a lead without a lot of effort here. Not to say Wednesday are playing badly - they're just not putting together any particularly dangerous attacking moves.
48 mins
Swansea have remembered they are good at football and have started this half with some purpose and energy. Abraham puts a pass ahead of Narsingh, who is a little off balance while running at full speed, gets ahead of Fox and then draws a little kick from the defender and goes down way too easily in the box. The referee isn't interested.
Really poor. Sheffield Wednesday had more of the ball but don't have anything like the quality to really scare Swansea in the final third - if they score here it'll be a lapse of concentration from the away defence letting someone in behind from a counter-attack. Hopefully Carvalhal wakes up his players during the break to turn this into a match.
33 mins
Gareth Southgate is here. Abraham? Carroll? Carroll would suit England's style of play, he loves darting around the centre-circle linking passes together, like a budget Jack Wilshere.
Abraham comes alive on the right wing and burns away from his marker and sends a dangerous low ball into the area! This could be good... but the shot doesn't have enough on it from the Swansea forward who attacks and Wednesday survive.
32 mins
Swansea should have a penalty. Abraham is shoved to the floor from behind by Pudil while defending a corner but the referee doesn't see it, or doesn't think it's a foul. It is a foul. Well, it should be.
Pudil has managed to injure himself during that little moment of madness and is receiving treatment.
29 mins
Abraham has the chance to be a menace in the area and links a one-two with Routledge... but the defence see to it and Swansea's attack break down. They're starting to play a bit more now, almost as if Carvalhal was just trying to get the Wednesday crowd to quieten down for the first 20 mins. It definitely worked if that was the plan.
26 mins
A wild brass band appears! The crowd threatens to come to life... and goes back to sleep. Boyd runs with the ball through the middle, Wallace goes wide right and wins a corner off Hoorn. Here come the big lads for the corner.
Wallace takes it, aims to the back of the box... it's taken down and laid to the edge of the area. Take a shot. Please shoot! He crosses... and Swansea have the ball again.
20 mins
Swansea finally pass their way into Wednesday's half, Carroll keeps everything neat and tidy as the link in the middle and Routledge probes the defence from wide left... and gives the ball away. This feels like a 12:30pm kick off. The crowd are quiet and neither team is really at their best.
10 mins
Swansea are defending really deep here. Sheffield Wednesday being given so much time on the ball.
It could be a tactic to lure them out and hit them on the counter-attack, but 73 per cent of possession is a big share for a Championship club against a Premier League one. It's a big share in any game!
7 mins
Poor clearance from Nordfeldt as he elects to boot the ball away rather than continue the short passing game from the back. He kicks straight to the Sheffield Wednesday midfield and is happy to see a cross headed well wide of his goal shortly after. Swansea could do with a little more energy here.
5 mins
I think it should be law that Sheffield Wednesday have blue and white stripes. This solid block of blue and white arms just isn't doing it for me. The team wearing the kit have started well though and seem up for this one, taking the game to Swansea and moving the ball around well. Swansea absorb the passing and try to push them back with their press.
Morning all, JJ will be in shortly to bring you the team news, build-up and match itself. Prior to that, have a read of our preview below.
Carlos Carvalhal insists he will not risk Swansea's Premier League status for FA Cup glory.
Carvalhal has extra motivation in the fifth round of the FA Cup on Saturday as he makes a swift return to Sheffield Wednesday - the club where he spent two-and-a-half-years before departing on Christmas Eve.
Victory would also secure Swansea's first quarter-final in the competition since 1964, but manager Carvalhal has promised to rest several first-team regulars ahead of key relegation battles in the Premier League.
"We won't take any risks and there will be changes because I will protect some players, I'm absolutely sure about that." Carvalhal said.
"Ask me to stay in the Premier League or win the cup, and I say Premier League because it is more important to the club.
"As a manager it would be fantastic to be with the trophy.
"I was at Wembley with Sheffield Wednesday (in the 2016 Championship play-off final) and I loved it, I want to go back there in my career.
"But I am not selfish because I understand the priority of the club - and that is to stay in the Premier League."
Carvalhal rotated his squad in previous rounds against Wolves and Notts County.
Swansea still had enough to win those ties, albeit after replays, and cup progress has come alongside excellent league form.
Carvalhal has taken 14 points from 21 for Swansea to climb off the foot of the Premier League and escape the bottom three.
The Portuguese must now try to maintain that momentum without cup-tied pair Andre Ayew and Andy King and a raft of injuries ruling out the likes of Leroy Fer, Wilfried Bony and Renato Sanches.
But he said: "We will not change our path compared to what we did in the past.
"We are playing against a good side in the Championship and it is very difficult to play at Hillsborough.
"We are underdogs there, not because we are worse than our opponents but because we are outside our main competition which we are completely focused on.
"We will try our best to go to the next stage and if we win it will be fantastic. But if we do not get to the next stage, then it is OK."
Carvalhal's successor Jos Luhukay has taken Wednesday into the fifth round for the first time since 2014 by knocking out Carlisle and Reading.
But the Dutchman had to wait until Tuesday's 2-0 home win against Derby, his sixth league game, to register his first success in the Championship.
"The reality is injuries have given him the same problems as me in my last games," Carvalhal said.
"But when some of the players are back I think they are strong enough to be in the top places of the division."


text:
Let us add your custom logo to tumblers, and they'll boost your brand at large company events, out the in the field and everywhere in between. These business logo tumblers can be screen printed in a number of cool colors to best represent your brand. Keep these high-quality promotional custom tumbler cups and your high-impact logo looking their very best by handwashing them after each use.
The custom logo tumblers have details that ensure they hold up year after year. So the business logo tumblers are great business promo items to give out at tradeshows or at company events. Recipients will love how these custom tumbler cups with keep drinks hot or cold for hours. And the custom logo drinkware resists leaking so the custom logo promo items are a good choice for employee commutes.


text:
Fundamental Mechanics of Fluids (Hardback)I.G. Currie (author)
- We can order this
Fundamental Mechanics of Fluids, Fourth Edition addresses the need for an introductory text that focuses on the basics of fluid mechanics-before concentrating on specialized areas such as ideal-fluid flow and boundary-layer theory. Filling that void for both students and professionals working in different branches of engineering, this versatile instructional resource comprises five flexible, self-contained sections:Governing Equations deals with the derivation of the basic conservation laws, flow kinematics, and some basic theorems of fluid mechanics. Ideal-Fluid Flow covers two- and three-dimensional potential flows and surface waves. Viscous Flows of Incompressible Fluids discusses exact solutions, low-Reynolds-number approximations, boundary-layer theory, and buoyancy-driven flows. Compressible Flow of Inviscid Fluids addresses shockwaves as well as one- and multidimensional flows. Methods of Mathematical Analysis summarizes some commonly used analysis techniques. Additional appendices offer a synopsis of vectors, tensors, Fourier series, thermodynamics, and the governing equations in the common coordinate systems.
The book identifies the phenomena associated with the various properties of compressible, viscous fluids in unsteady, three-dimensional flow situations. It provides techniques for solving specific types of fluid-flow problems, and it covers the derivation of the basic equations governing the laminar flow of Newtonian fluids, first assessing general situations and then shifting focus to more specific scenarios.
The author illustrates the process of finding solutions to the governing equations. In the process, he reveals both the mathematical methodology and physical phenomena involved in each category of flow situation, which include ideal, viscous, and compressible fluids. This categorization enables a clear explanation of the different solution methods and the basis for the various physical consequences of fluid properties and flow characteristics. Armed with this new understanding, readers can then apply the appropriate equation results to deal with the particular circumstances of their own work.
Publisher: Taylor & Francis Inc
Number of pages: 603
Weight: 998 g
Dimensions: 235 x 156 x 33 mm
Edition: 4th New edition
"There are many graduate-level books in fluid mechanics. Currie's book is unique in that it covers more topics than usual but the coverage is sufficiently concise to keep the book from becoming a giant one. In doing so, the students are not lost in the details and are kept engaged."
-Mohamed Gad-el-Hak, Virginia Commonwealth University, Richmond, USA
"This book is very systematically and clearly presented. ... It is a well-structured book and it provides the fundamental knowledge and materials to be of interest to engineers and researchers."
-Yitung Chen, University of Nevada Las Vegas, USA
"The selection and coverage of the topics are very appropriate for a first graduate course in fluid mechanics. The text maintains its tradition as a readable text by an interested reader demanding no elaborate supplements. It also contains an appropriate coverage of mathematical tools in its appendices, so making the text self-contained."
-Jay M. Khodadadi, Department of Mechanical Engineering, Auburn University, Alabama, USA
"This book has a unique place among the existing fluid mechanics textbooks. Simplicity and an easy-to-follow approach, combined with a broad coverage of topics, are among the unique features of the book."
--Heat Transfer Engineering, 2014
You may also be interested in...
ReviewsSign In To Write A Review
Please sign in to write a review
Sign In / Register
Sign In
Download the Waterstones App
Would you like to proceed to the App store to download the Waterstones App?
Click & Collect
Or, add to basket, pay online, collect in as little as 2 hours, subject to availability.
For shops outside of these areas: reserve online, pay on collection.


text:
Reza Farahan of Shah's Of Sunset drops 40 pounds after working for several months under an intense workout regiment. The Shahs of Sunset star revealed his svelte new body to his followers on Instagram and Twitter this week. Reza has been working up a sweat in the gym and shedding major pounds since December of 2016. Farahan, 43, proudly posted side-by-side photos to gauge his weight loss.
Does my face look different? On the left is December 20th 2016 and 40lbs heavier and the right is a photo I just snapped! I'm almost there, but I'm not gonna rest until I have a six pack! I'm actually going to try to be healthier and have a better body than I had in my 20's, and a bitch was lookin' fly back then. No more????, just???????? from now on! #shahs #shahsofsunset #fit #workout #AbitchLost40LBS
A post shared by Reza Farahan (@rezafarahan) on
"Does my face look different? On the left is December 20th 2016 and 40lbs heavier and the right is a photo I just snapped!… I'm almost there, but I'm not gonna rest until I have a six pack! I'm actually going to try to be healthier and have a better body than I had in my 20's, and a bitch was lookin' fly back then."
In another post, the reality star showed off his weight loss transformation near his chest and stomach area.
"I wanted to get my body back to where it used to be in my 20's and 30's!."
The day after Christmas I started a weight loss program and a bitch has been hard at work! I wanted to get my body back to where it used to be in my 20's and 30's! I'm not gonna lie, it was hard AF, but a bitch was diligent and a bitch was militant and a bitch did it! I LOST 40 F'ing LBS and I feel great! Just thought I'd share! #fitness #motivation #AbitchLost40LBS #shahs #shahsofsunset @ashleybordenfitness @bravotv
A post shared by Reza Farahan (@rezafarahan) on
Reza admitted that the weight loss process was a tough one but he was "diligent and militant" and feels awesome.
Along with the before-and-after pictures, Reza said he has been documenting his workout routines, including the long intense runs on the treadmill and barbell exercises.
Take your #core game to the next level! Add a plate for added burn ???? @rezafarahan showing up as always and giving ????% #Shahs #YoursMineOrOurs #ShahsOfSunset #Bravo @bravotv . Thank you @pjstahl for the #ab inspiration! #ProjectSteel
A post shared by Ashley Borden (@ashleybordenfitness) on
Farahan is set on being in better shape than he was when he was younger when it comes to health and fitness.
"I'm actually going to try to be healthier and have a better body than I had in my 20's."
Recently, new mom, Asa Soltan, has returned to social media. The Shahs of Sunset star posted her first photo since giving birth to her first child, Soltan Jackson. Asa gave birth at the end of January and thanked her fans for their support during this exciting time in her life.
Due date is next week! Been feeling so dreamy. Resting a lot, sleep and day dreams about our Love nugget are melting into each other. Getting physically and mentally ready to bring this super special soul into the world. Feeling beautiful. Feeling magical. Feeling peaceful. Feeling Grateful. ❤????????????????????????❤ #pregnant #motherhood #asasoltan #Priestess #Golden #LoveNugget #Grateful #Bliss #InOurZone #LittleHugeBlessing #AquariusBaby ???????? Praying for a Jan 27th Birthday so that Daddy and Baby can celebrate life together. ❤
A post shared by Asa Soltan Rahmati (@asasoltan) on
"Lovers, I'm back! Actually I never left. In fact, I've never been more present. I have been in solitude, honoring life with my newborn son Soltan, cherishing our bond, celebrating in gratitude our new family, and getting to know each other now that he is outside my belly and in the world."
Asa added that motherhood has been magical and the greatest honor she's been blessed to receive.
"Being a mother is the greatest honor and the most special experience possible. It's also very tough. I salute all you mothers out there. You are angels."
At the end of her message to followers, Asa revealed that she would not be posting adorable snapshots of her son anytime soon.
"I will not be posting pictures of Soltan. Thank you for respecting our privacy. Beaming beautiful love into everyone's life."
Asa and Jermaine Jackson Jr. have kept their relationship out of the public eye but have been dating for several years.
[Featured Image by Slaven Vlasic/Getty Images]


text:
Game-based learning is the learning process through a video game. Learning through video games is not entirely new, but it has been growing in popularity as well as sophistication since about the mid-1990s. This is because video games give players the opportunity to get out from the stressful pressure of real life situations and just focus on having fun. Learning through a game offers an effective way to help improve one's general knowledge.
There are many types of games that have learning potential. Educational games are usually games specifically designed for educational purposes, or that have secondary or tertiary educational value as well. These types of learning games include card, board, word and multi-player games like Sudoku and crosswords. The most popular type of educational game is the crossword puzzle. In this game the player is given several clues, each clue leading to another piece of information and the end result of completing the crossword puzzle. The player then gets rewarded for answering the correct answer and is allowed to share his or her work with others who may also be playing the game at the same time. Many adults play this type of game every day, especially when they need some brain exercise to get rid of their daily stresses or if they need a break from the hectic pace of their lives.
Video games are also good for enhancing memory. When you play a game, you are often required to perform repetitive tasks, such as memorizing information or solving problems. In most cases this task requires thinking in terms of memory and cognitive skills such as problem solving. Playing these types of games allows you to train your brain to recognize patterns and remember what you see and hear. By working at memory skills through games, you will be able to solve more complex problems and increase your cognitive abilities.
Brought to you by: Lidolearning.com
Sections are listed along the left side of the window
(show me). Each section can have multiple pages inside of it.
To organize or add sections, click the "Organize Sections" link
(show me).
You can rename any section by clicking on the icon
that appears, rearrange sections by clicking and dragging them,
or delete sections by clicking the icon.
Sections have multiple pages. You can see the list of pages for
the current section on the right side of the window (show me).
To organize or add pages, click the "Organize/Manage Pages" link
(show me).
You can rename any page by click on the icon that
appears, delete a page by clicking the × icon, or
rearrange the order of pages by click and dragging them.
Now you're editing! Rename the page or change commenting
options (show me) if you like. You can save, preview or
cancel your changes at any time by clicking the button on the
right side (show me).
Content is divided into subsections, which each have a dotted
border. You can delete or edit the contents of a subsection by
clicking the or icons at the top
right corner of the subsection.
To add new subsections, find and click the type of content you
want to add in the options list on the right side of the page
(show me).