I guarantee it. If you (a) have customers and (b) need to generate profits to continue operations, social media is about to revolutionize your business. I can predict this based upon the following observations:

  • Every network ever developed – from the creation of railroads and the electricity grid – has a significant and growing impact on business, especially in their ability to generate new industries, and this is always underestimated at the time. The highway network led to ‘drive-thru’ restaurants, and the Internet has spawned countless new opportunities.
  • In the emergence of each new development in the network, many predict the new changes as a fad. Bill Gates famously underestimated the impact of the Internet, a failure which likely marked the beginning of the demise of Microsoft. When email first emerged, it was broadly considered a waste of time and is now a primary form of communication.
  • Shorter and faster communication methods always win. Email replaced postal mail. Text messaging is replacing email. And Tweeting is replacing text messaging. What’s next?
  • The improvements and innovations in networks increase an exponential rate.

Convinced yet?

Specifically, social networks have a fundamental and unique quality unlike any network before them: they fuse the social instinct of people with the techological capabilities of an electronic network. This has never happened before and will have a profound impact on the way we communicate with others, the surface of which has barely been scratched.

  • 3 out of 4 Americans now use social technology, as do two thirds of the global population.
  • Time on social networks now accounts for 10% of all online time, and is growing at 3x the rate of online usage.
  • More media has been published on YouTube than has been produced by all the studios and media companies combined, ever.

If Craigslist destroyed the classifieds business, and Google News is like acid to the fabric of newspapers, imagine what microblogging is going to do to television news.

Still not convinced?

Some more thoughts:

  • Your customers are using social media and 93% of its users believe companies should have a presence in social media..
  • Companies are generally doing a terrible job at social media, attempting the continuation of one-way broadcasting that has defined the history of marketing.
  • Social media represents the best ROI for any marketing channel, including email which had a $47 return per $1 spent in 2007 (compare that to a quoted $2-for-$1 rate for printed newspaper ads).

Need concrete examples?

  • Tara Hunt’s book The Whuffie Factor illustrates how companies can flourish or fail on their social media reputation. Her case study on how Dell embraced social media to turn around their terrible online reputation will in years become a model case, much like the way business schools present Henry Ford. High quality customer service is helping businesses grow faster than ever.
  • Warner Bros blames “total concept rejection” for the rapid failure of some summer movies. Films that used to survive two weeks before word of mouth spread now only survive 12 hours thanks to social media. Poor quality products are failing faster than ever.
  • Even smaller businesses in diverse industries are finding that user review sites such as Yelp and TripAdvisor are dramatically affecting their businesses, especially if the reviews are good. People listen to their peers’ opinions more than sales pitches in commercials.

What should you do?

Social media offers a unique opportunity to connect and listen to your customers. No more customer surveys or attempt to suppress customer complaints – people are talking about you, and you need to listen. Your existing customers are your best marketers – or they can do more damage than your worst competitors.

This is not just Twitter. This is not just Facebook. This is:

  1. Customer Service
  2. Public Relations
  3. Building customer loyalty
  4. Generating business
  5. Crowd sourcing
  6. Collaboration
  7. Networking

… in fact, it’s your sales and marketing departments combined. Social media is going to forever change your business. Let’s make some customers happy.

(Originally published on my blog at jbeswick.com)

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Social Media
Comments (0)
Jun
23

Making CRM successful

By · Comments (0)

There are few technology projects that raise fear levels more than client relationship management. As CRM has grown in importance in the last decade, and the number of vendors in the field has broadened substantially, this area is renowned for its high profile failures and often-unimpressive ROI.  I’ve managed a number of CRM projects and since the success rate of new CRM initiatives hasn’t improved much in the industry, I’d like to distill some advice in an attempt to help anyone out there attempting their own CRM deployment.

CRM is a strategy, not software

Starting with a particular software vendor rather than a set of strategic objectives tends to result in unnecessarily complex integration work and unhappy users. Deploying CRM requires a company to analyze its workflow and existing systems and look for areas of transformation in order to yield actual results. When CRM software is simply bolted onto a range of legacy systems, it usually causes duplication in workflow and reduces the buy-in from end-users. If you have a patchwork of existing data and systems – from users’ Excel spreadsheet up to corporate-level SAP platforms – you need to consider how to integrate or replace these up front.

Let the Project Manager manage the project

Since CRM cuts across silos and divisions, functionally-driven organizations are prone to having the biggest failure rate. It’s important to have a Project Manager empowered to use resources across divisions to have any likelihood of meeting the requirements of different divisions, and the strategic goals of the project should be realized to achieve milestones for every division involved. If CRM is created by the IT division and fostered onto the sales department without cross-divisional support, it simply won’t be used. A good Project Manager who is given authority to manage effectively will identify the scope of the project, have a much better chance of delivering within time and budgetary constraints, and achieving the overall goals as well as those for each stakeholder.

Workflow is critical

Organizations frequently have a series of informal workflow chains to create deliverables for their internal and external clients. These are usually not documented and proceduralized, but are well-understood by the subject matter experts at each stage. The front-to-back workflow within a company needs to be analyzed with the support of each group along the way before any decision is made about systems and software. When this is done correctly, CRM has a capacity for simplifying tasks, reducing workloads and creating rich management reporting. If the informal workflow is ignored, CRM becomes just another piece of corporate software that users ignore.

Managing Customer Relationships

Many CRM projects start with little or no customer involvement. If improving customer service and a desire to improve sales and client retention are the broad goals, it’s essential to find out from customers what they think about the organization’s strengths and weaknesses. In my experience, without exception, customers have  provided feedback that has been critical to the success of CRM projects, and shown gaps previously not considered. Customers are often interested in improving multi-channel support (phone, web, email, etc.) and receiving more timely and higher quality communication from their vendors.

Don’t Under-estimate Data Cleanup

Since CRM projects almost never start from a blank state from a data perspective, it’s essential to plan how data will be migrated and cleansed. Duplicate and erroneous records from existing systems cause serious roadblocks to end-users, and unless poor quality data is handled appropriately, it prevents adoption of any new system. The biggest problem here can be the overwhelming quantity of data, mismatched primary identifiers in different datastores, and validating corrections.

In many ways, implementing a successful CRM platform is one of the largest IT projects that many corporations undertake. Approaching CRM as a strategic cross-divisional initiative with the goal of improving the customer experience while streamlining internal workflows is the first step towards success, but it’s essential to plan for and predict pitfalls along the way.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : CRM
Comments (0)
Jun
23

Optimizing WordPress for SEO

By · Comments (0)

Matt Cutts, head of Google’s Webspam team, provided an insight to optimizing your WordPress site for maximum SEO effectiveness at the WordCamp 2009 Conference in San Francisco. SEO has gained a repution for being mysterious since the search engines don’t publicize exactly how their algorithms work, but his pointers confirm our opinion that quality of content is the critical element rather than focusing on keyword-stuffing and metatags.

That being said, here were his major observations:

  • Don’t change old URLs if they don’t comply.
  • Don’t over-do the mechanics of SEO: write about what you know and love, and ranking will follow.
  • Build a reputation through original research, live blogging, finding a creative niche, making lists, creating code, being conversial (sometimes) and meeting people through social media.
  • Reduce bounce rate by using ‘Show Related Posts’ feature.
  • Security: keep WordPress updated and use .htaccess to limit IP access to your administration.
  • Use Google Webmaster Tools and Analytics to check most popular referrers and manage 404 errors.
  • 90% of WordPress installation are only in existence to created to create spam.
  • The number one request from site owners is to improve their ranking in Google.
  • GoogleBot considers over 200 factors in ranking pages. Pages, not sites, are ranked so the focus should be to improve the quality of every page on your site..
  • “WordPress takes care of 80-90% of SEO” in the pure mechanics.
  • Google rewards sites that are relevant and reputable, and inbound links from other pages with a high PageRank helps reputability. A description of the PageRank algorithm followed (see the presentation for details).
  • Avoid the obsession with backlinks since low value inbound links don’t help your ranking. High quality and relevant links do.
  • Translate your site into real English not technical speak or jargon – this helps both humans and search engines.
  • Use the Google Keyword tool to find synonyms and commonly-used search terms around your topic.
  • Don’t engage in keyword-stuffing techniques, since your pages will be penalized.
  • In permalinks, use the custom structure ‘%post name%’ for maximum SEO usage of the URL (and put keywords in URL). Don’t update the old URLs if they don’t comply since this will result in broken links.
  • Don’t over-do the mechanics of SEO: write about your area of expertise, and ranking will follow.
  • Build a reputation through original research, live blogging, finding a creative niche, making lists, creating code, and meeting people through social media.
  • Reduce bounce rate by using the ‘Show Related Posts’ feature.
  • Security: keep WordPress updated and use .htaccess to limit IP access to your administration.
  • Use Google Webmaster Tools and Analytics to check most popular referrers and manage 404 errors.

While these tips were geared towards bloggers, they’re relevant for every business website that wants to attract more traffic. The WordPress platform has simplified the mechanics of SEO, and now the challenge is to create high quality and relevant content that will increase your reputation – and consequently improve your PageRank.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : CMS, SEO
Comments (0)

Recently, the need arose to capture function keys in a form and suppress Access’ response (eg. pressing F1 would not invoke the Help feature), and there is a surprisingly easy solution. You can also capture all the non-ASCII keys (shift, insert, alt, etc.) and choose to either ‘listen’ or prevent Access from handling these. This was used in a point-of-sale project, where function keys are used to change the mode of the application.

To do this, simply change the ‘Key Preview’ property of the form to ‘Yes’ and then use the ‘Form_KeyDown’ event in the form’s VBA module. The two parameters, KeyCode and Shift, indicate which keys are being pressed and if any of the character-set shifts (ie. shift, control, alt) are being held. This fires for every key, so you will need to parse the values for KeyCodes that interest you. Resetting the KeyCode parameter to zero will effectively cancel the keypress.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Access, Office, VBA
Comments (0)

A very useful feature introduced in Excel 97 enables you to webscrape a site and import defined areas into a spreadsheet. There are a variety of situations where this could be useful:

- Utilizing real-time financial market data.
- Importing weather forecasts.
- Checking if your ads are appearing in a search engine.
- Viewing the latest headlines.

To import data from a webpage:

  1. Click Data –> Get External Date –> From Web.
  2. Enter the URL to scrape (eg. http://news.google.com/).
  3. Click the yellow areas for the page divisions you wish to import.
  4. Click ‘Options…” to specify how HTML formatting and PRE are handled.

After importing, right click anywhere in the imported block and click ‘Data Range Properties’ to specify how often the page should be refreshed (the minimum time is 1 minute). Click here for a spreadsheet that demonstrates the four sample uses above.

Unfortunately, there is no specific event that is fired when your web query refreshes. However, you can use the Worksheet_Change event and verify that the target range parameter matches the cell area for your web query (see the sample spreadsheet’s VBA module for details). Frequently this is required since there is usually some parsing required from the results.

If the source data of your query is dynamic (eg. you a looking up an area code driven by user-generated data), it is simple to use VBA to generate the web query results:

Dim sSearchTerm As String
sSearchTerm = Cells(2, 2) ‘ For example…

With ActiveSheet.QueryTables.Add(Connection:= _
“URL;http://www.google.com/search?hl=en&q=” & sSearchTerm, Destination:=Range(“$B$4″))
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh
.BackgroundQuery:=False
End With

Although web queries lack the full power available by using MSXML or WinSock to retrieve web data, for simple queries they provide a very rapid and reliable way to scrape a webpage.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Excel, VBA
Comments (0)
Jul
31

Making a timer in Excel

By · Comments (0)

The Excel timer function OnTime is notoriously unreliable and difficult to use and if you are looking for the classic Visual Basic timer, VBA doesn’t have an equivalent.

So building a live clock on your spreadsheet, or having spreadsheets update themselves after an interval is not very easy. We’ve seen complex macros tied into the Open event of a workbook, launched by Windows Scheduler, and a whole array of other workarounds to achieve something that’s simple in most programming languages.

The VBATimer.dll (zipped version here) is a VB Timer, wrapped in a class that exposes events to Excel. Once the DLL is added as a reference, it can be used as in this example (placed in the ThisWorkbook module):

Dim WithEvents o As VBATimer.Timer

Private Sub o_TimedFired()
ActiveWorkbook.Sheets(1).Cells(1, 1) = Now()
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set o = Nothing
End Sub

Private Sub Workbook_Open()
Set o = New VBATimer.Timer
o.SetTimerMilliseconds 1000
End Sub

In this example, the time is placed in the first cell of the first worksheet, updating every second. While this is a trivial use, it has many other applications, such as detecting user inactivity or running tasks at specific times or intervals.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Excel, VBA
Comments (0)

Strangely, Excel uses the installed printer driver to render the screen – the speed of the driver affects how quickly Excel renders and paints your workbook. If you have a slow driver installed, your workbook will not render quickly.

The HP LaserJet driver is significantly faster than many inkjet drivers installed. You can install this driver through Control Panel –> Printers, without actually needing to have the printer physically available. The only downside is that you will not be able to use the fast print icon on the toolbar (since the HP printer doesn’t exist), but you can select your ‘real’ printer but using the File –> Print option.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Excel
Comments (0)

Converting between decimal, binary, octal and hexadecimal is easy within Microsoft Excel. Prior to Office 2007, you need to ensure that the Analysis Toolpak Add-in is installed (these functions are available directly in 2007).

The functions are:

  • DEC2HEX (decimal to hexadecimal)
  • DEC2BIN (decimal to binary)
  • DEC2OCT (decimal to octal)

Similarly, converting between another of the four numbering systems requires the formulas in the format 2 (eg. OCT2DEC will convert from octal to decimal). Note that when converting from hexadecimal, you should use quotes, since Excel will throw an error if the characters A-F appear.

If you wish to convert from binary to ASCII characters, you should then use the CHAR function to render the resulting decimal code to a character.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Excel
Comments (0)
Jul
16

Using forms in Excel

By · Comments (0)

Excel has some great functionality for creating forms without having to write any code. The major advantage here is not just simplicity, but you can avoid macro security prompts when other users open your file.

The procedure is:

1. Make sure the forms toolbar is turned on (View –> Toolbars –> Forms).
2. Select the control you wish to use and drop this on the form.
3. To size and move the control, right click and drag (this accesses the design mode of the control).
4. Right click the control to access its properties. Here, you alter the 3D appearance and other elements. Most importantly, you can create a ‘Cell Link’ entry, which is where the control will maintain its state.

You can download an example here, which shows a simple form with a listbox, checkbox and option group. The Cell Link value is the essential part to controlling the form: changing this value will update your control’s state, and when a control is modified, the value will also be updated accordingly.

Although Excel forms do not provide the richness of the VBA control box, they can offer a rapid way to generate user forms without the need for code.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : Excel, VBA
Comments (0)

One of the bad features of VBA is the ability to instantiate objects in the declaration, resulting in lines such as:

Dim oSomething As New SomeObject

Declaration and instantiation should always be separated. The reasons are numerous and complicated, but one of the best examples is this. When this code runs:

Sub test()

Dim oWinHttp As New WinHttpRequest
Set oWinHttp = Nothing

If oWinHttp Is Nothing Then
MsgBox “oWinHttp is nothing.”
Else
MsgBox “oWinHttp is NOT nothing.”
End If

End Sub

The result of this code is that the object will never be set to nothing. There are also overhead issues in the way that VB and VBA handles Dim/New in the same line, in terms of every time the object is used.

Due to these inconsistencies, it’s our recommendation to always split Dim and Set, since it results in the expected outcome of the programmer.

VN:F [1.7.7_1013]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.7_1013]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Categories : VBA
Comments (0)