Inside View: The Ultimate CRM Mashup?

Summary

Inside View is an amazingly useful tool. It’s a subscription web site that aggregates up a number of marketing/prospecting databases (jigsaw, hoovers, D&B, zoominfo). They’ve got a great pricing model, the tool can sit inside an IFRAME on your Account or Lead forms, and if you need to prospect, I highly recommend you check it out. (And if you don’t need to prospect, please tell me  how you do it!). In a minute I’ll tell you the funny story about how I learned to use it, but first, why it’s the ultimate CRM mashup.

Here’s how it looks embedded in an IFRAME on an Account form:

insideviewperfect1

It’s got seven tabs. “Analysis” and “Key Info” (showing) provide basic account information, and the other five aggregate information from lots of different databases to show them in context. Inside View has deals with all of those databases (some of which I mentioned above but there are lots more), so as long as you subscribe to Inside View, you don’t have to individually subscribe to all of the other ones.

You can probably guess what the other tabs expose, but I’ll show you the “Buzz” tab since it’s one of my favorites:

insideviewperfect3

It might be a little hard to see, but the Buzz tab is a search on the account name exposed as a Twitter feed. To test it, I loaded up one of my favorite account records, switched to a Twitter session and tweeted something about the account, then switched back to the account form, refreshed, and there it was –  pretty cool! You can even see the account’s web site traffic courtesy of Compete.com. (the numbers are in thousands of unique visitors — www.kraftfoodscompany.com gets a view more visitors than the Trick Bag!) 

Prospecting with Inside View

There’s a free version I’ll tell you about below. I tried it, liked it, and purchased a subscription. A single seat subscription is $99/month, which might sound like a lot until you realize you get unlimited exports from Inside View’s account and contact/lead database. Most of the other prospecting databases I’ve subscribed to have a pay-per-lead model, or an unlimited subscription that’s much more expensive than $99/month.

You can search in lots of different ways to identify prospects; for me the best option has been to identify people with specific job titles (e.g., CRM Project Manager) at specific accounts. After identifying the records, you can export them to a CSV then import into CRM.

I’m jealous of the SalesForce.com integration, since they can do an automagic import, no CSV file required! The Inside View people tell me this is coming soon to the Dynamics CRM version — I hope so!   

How it Works

One of my sales reps received an email from a rep at Inside View a couple weeks ago. I copied and pasted the following text from it:

———————————

 Customize Account Entity 

  • Double-click “Account”
  • Click “Forms and Views”
  • Double-click “Form” (The main application form)
  • Click “Add an IFRAME”
    • Name: INSIDEVIEW_ACCOUNT_CONNECTOR
    • URL: javascript:false
    • Check the box for “Pass record object-type code…”
    • Label: InsideView
    • Check the box for “Display label on the form”
    • Uncheck the box for “Restrict cross-frame scripting”
    • Section: Account Information
    • Click “Formatting” tab
    • Scrolling: Never
    • Uncheck the box for “Display border”
    • Leave all other default values and click “OK”
  • Click “Form Properties”
  • Select “OnLoad” event and click “Edit”
  • Check the box for “Event is enabled”
  • Copy and paste the code provided for the Account connector (I’ll email you the code if you fill out the form I link to at the end of this article)
  • Click “Save and Close”

From the “Customize Entities” view, select “Account” and click “Publish

———————————

In the normal course of events, I’m not able to lift perfectly good blog copy from an email, and I have to admit, seeing these perfectly good instructions on how to customize the Account entity in an email to Kim prompted me to check her security role and make sure she wouldn’t actually be able to DO this. She can’t, and anyway she has the good sense not to try it, but I thought it was interesting that somebody would send a sales rep instructions like that!

Anyway, those are your step-by-step instructions if you want to try the free version out on your own CRM — works with both CRM Online and on-premise. The free version gives you the same sweet integration, but you don’t get to pull contacts & some other things you’d expect to have to pay for. All you need to get it to work is the jscript code that goes into the Load event of your account form. The Inside View people will send it to you, but I checked with them and they said it was OK if I did also.

So, to get the Account form Load Event code for my current pick as the Ultimate CRM Mashup, click here and fill out the form.

Comments (2)

Mashing up CRM and Twitter, Part 2

The Truth is Out There (in 140 Characters or less!)

If you didn’t read the first part of this “series”, here’s a link to Mashing up CRM and Twitter, Part 1. That article provides a high-level overview of three topics:

  1. What the heck Twitter is, in case you’re new to it
  2. Why you might want to integrate it with Dynamics CRM
  3. Some basics of Twitter Search

To follow up on part 1, I want to cover two main topics here:

  1. How you can implement a managed Twitter search from a Dynamics CRM record
  2. Discuss some of the interesting extensions of the simple example I’ll show, and argue a little more why Twitter search is so important

Implementing a Managed Twitter Search from Dynamics CRM

What I’ll show here is some of the mechanics of doing a contextual Twitter search from a CRM record. These will be similar no matter what entity you’re searching from, so I’m going to show how to customize the Dynamics CRM “Competitor” entity. (In the example I show it will be not for my competitors, but for a group of companies that compete against each other. Same techniques, either way.)

The general technique is to use an IFRAME control on a customized CRM form, and dynamically update the “src” property of the IFRAME with information from the current record. Here’s what the user experience looks like, starting with the Competitor form opened to a specific record, in this case my favorite food company, Kraft:

"Competitor" form open with record selected

Figure 1: Competitor form open with a record selected

This shows a standard Dynamics CRM form, in this case having double-clicked on the “Kraft” record from the Competitors grid. When a user clicks on the Twitter Search tab, what they see is an IFRAME that exposes the results of a Twitter search. What that might look like is shown here:

comp_form2

 

Figure 2: Twitter search results based on CRM data

How to Build it

That’s the user experience. What I’ll show you next is how to build a customization like this — essentially, how to update the “src” property of an IFRAME like that with information from the current record. The idea here is to provide a managed search experience from within CRM, so my brand managers or whoever else might be using this don’t need to worry about Twitter search syntax. To save a little time, I’ll give you a “heuristic” step by step. I’ll post a video shortly where you can see all of the detailed steps, but for now…

…follow these steps:

  1. Customize the Competitors entity, by adding a tab, a section, and an IFRAME; call them all Twitter Search or something like that.
  2. To start out, set the IFRAME’s URL property to http://search.twitter.com . Turn off the “prevent cross-frame scripting” property by unchecking it.
  3. Navigate to the form’s OnLoad event, and add the following  jscript code:

code starts here:

var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;

var twittersearchURL = “”;

switch (crmForm.FormType)
{
 case CRM_FORM_TYPE_CREATE:
    twittersearchURL = “http://search.twitter.com“;  
   break;

 case CRM_FORM_TYPE_UPDATE:
       // Use Twitter search with this account’s name when updating account
  twittersearchURL = “http://search.twitter.com/search.atom?q=”;
  // Encode the account name and add it to the search string
  twittersearchURL += encodeURIComponent(crmForm.all.name.DataValue)+”&rpp=100&lang=en&tude=:)”; 
  break;
}

// Set the respective IFRAME’s URL
//alert (twittersearchURL);

crmForm.all.IFRAME_twittersearch.src = twittersearchURL; 

end of code

Let me make a couple of comments about this code, in case you want to try it or some variation on it:

  • Notice that the twitter search url uses the “atom” qualifier. This is the way twitter search lets you return results in an RSS format. This is a lot more convenient in many ways than search results returned to an HTML page. In part 1 of this article I discussed Twitter search basics, and included a link to the Twitter search API, which I highly recommend you read if you want to do things like this.
  • Notice the encodeURIComponent function call. In this example, I pass  “crmForm.all.name.DataValue” into that function — this is the value of the “name” field on the Competitor form. If you were doing this for the Account or most other entities, it would be identical, but you might need to change the field name depending on what you want to do. EncodeURIComponent does things like replace spaces with the “%20″ strings you see in URLs; it basically takes text strings and formats them properly as URLs, so get used to this function if you want to do things like this.
  • Also: notice the “&tude=:)” and the other strings I tacked on to the end of the url. If I hadn’t commented out the alert, I’d see a URL like this just before the last line of this OnLoad event code gets run: http://search.twitter.com/search.atom?q=Kraft&rpp=100&lang=en&tude=:) This search query looks for Kraft, then tells Twitter to return up to 100 results per page, then says to only look for English results, and finally says to look for “results with a positive attitude”. Obviously, if I’m a Kraft brand manager and I’m looking at search results for “Oreo Cakesters”, or “mac ‘n cheese”, I’d probably want to look at both “tude=:)” and “tude =:(” results, if you know what I mean!

Refer back to Figure 2 for a second and notice the “Results mood” pulldown list. With very little additional effort (similar jscript to the above, only behind the Change event of the picklist attribute that gets selected) you can build in some flexibility along these lines.

Extensions and the Importance of Twitter Search

Here are some of the more obvious ways this could be extended. (You can probably think of a lot more — let me know if you have some good ones!)

  • If I’m a Kraft brand manager, I’d want to use the Product entity, and add a bunch of my products (see above), and search on them with both :) and :( tude qualifiers, and maybe stack up how I’m doing against my competition.
  • If I really did want to keep track of my competitors, the Competitor entity would work well, but you might want to do this for their products as opposed to just the company name.
  • I think where it really starts to get cool is to store the results and start doing some analysis over time on the search results. You could store off these RSS data, say to a database, and really start to crunch some interesting numbers. For example, suppose you’re launching a new ad campaign for an existing product, and you want to see how it impacts the buzz about your product over time. Or suppose you’re watching to see how your competitors’ campaigns are doing over time. Or suppose you’re managing a product recall or something along those lines and how that impacts discussion of your product over time…

I could go on and on, but you probably get the point by now (if you’ve read this far! in which case, thank you very much). People who dismiss Twitter as a narcissistic time-suck are missing the point. If you’ve got 6 million+ people out there tweeting away about almost any topic you can think of, the chances are good they’re talking about things that matter to you. And if you can aggregate up all those tweets, you can actually learn some interesting things you might not already know.

The Truth is Out There…in the form of millions and millions of 140 character tweets.    

Cheers –

Richard

richardk@imginc.com

Leave a Comment

Mashing up CRM and Twitter, Part 1

In my (apparently) ongoing series of articles on mashing up Dynamics CRM with various web applications, here’s the latest installment: Twitter. You might be familiar with the technique: using a little client-side scripting to update the src property of an IFRAME. I’ve illustrated it before in a some  different contexts – here are three:

·         Search SharePoint 2007 for information related to a CRM Account record

·         Display a Google map for a CRM Contact or Account record

·         For one of your Account records, which of their associated Contacts are on LinkedIn and where are their profile pages?

Here’s a brief backgrounder on Twitter, and why you might want to extend your Dynamics CRM with Twitter search results.

What’s all this Twitter stuff, anyway?

Twitter is one of the fastest growing of the so-called Web 2.0 applications. If you haven’t used it, it’s easy to characterize it as a narcissistic exercise in time wasting. Who but my Mom would really care to know what I’m doing at random times throughout the day, anyway, especially if I’m always tweeting (a Twitter version of a post) “just got back from a movie”, or “going into the kitchen to get some OJ”? There are a lot of people on Twitter. Just how many is open to debate, so visit this site if you’re interested.

In any case, once you start using it, you start to appreciate the real business value it can have. Twitter is essentially a broadcast medium. Any tweet can be searched, and if I find an interesting tweeter (twitterer?) I can “follow” that person. Someone else can follow me. When I follow someone, I can see a history of their tweets from my Twitter home page, and I can (optionally) configure it so that for certain people I’m following, their tweets get sent to my phone or mobile device. So how can you use it for your business?

1.       Think of who might be following you, and push out an announcement to all of them at the same time. People who follow me might be interested in CRM training, so when I got locked in dates for an upcoming CRM training roadshow I’m doing with United Training, I tweeted out with a link to the landing and registration pages.

2.       If you have a blog, Twitter’s a great way to announce a new post to your network. The 140 character maximum tweet length includes the URL, so you’re forced to be brief. For me, at least, this makes me feel a little less like I’m wasting peoples’ time, so I’ll always tweet out a new post.

3.       Tweet a question to your network. OK, I haven’t actually done this very much, but anecdotal evidence tells me it’s effective.

4.       Find people who have valuable things to say on topics you care about, and follow them. From what I can tell so far, about 90% of the people I’m interested in following include links to their recent blog posts and other more detailed content in their tweets, so don’t make the mistake of thinking what you can learn from Twitter must be expressible in 140 characters. And just think: there’s always a chance, however slim, that you really will learn something that will change your life within the 140 character limit! How awesome would that be?

These are just some specific examples, but for me so far, the two most compelling Big Reasons to use Twitter are that I can promote myself and my company’s services in an efficient, opt-in format; and that I can learn things from people who have interesting things to say.

Searching Twitter

Before we get to the mashing up part, we have to talk about Twitter search. I don’t claim to be the Twitter Search Zen Master, but I’ve started to appreciate its huge potential. If you’ve ever wanted to know “what everybody’s thinking” about some topic or another, think about Twitter: millions of people, entering 140-character thought-snippets on any topic you can think of … and all of it nice, searchable data! If there really is wisdom in crowds, we should be able to find some of it here.

Here’s your Twitter search primer: http://search.twitter.com/about

The two most important resources linked to from that page are for Twitter search operators and for the Twitter search API.

I’ll summarize them by way of a few examples. To see how these work go to http://search.twitter.com/ and enter the search phrase, verbatim, in the search box.

Search phrase

What it returns

The search URL

oreos

Tweets containing the word “oreo”

http://search.twitter.com/search?q=oreos

oreo cakesters

Tweets containing both “oreo”, and “cakesters”

http://search.twitter.com/search?q=oreo+cakesters

“oreo cakesters”

Tweets containing the exact phrase “oreo cakesters”

http://search.twitter.com/search?q=%22oreo+cakesters%22

– the %22’s are the quotation marks

from:richardknudson

All Tweets from me (richardknudson’s my twitter name)

http://search.twitter.com/search?q=from%3Arichardknudson

– %3A is the colon

@richardknudson

All Tweets about me

http://search.twitter.com/search?q=@richardknudson

– CRMGuy: you are my Mom’s second favorite micro-blogger!

dynamics crm from:richardknudson

All Tweets from me containing both “dynamics” and “crm”

http://search.twitter.com/search?q=dynamics+crm+from%3Arichardknudson

– you can combine search conditions

Then you can extend this a little bit by turning the URL into an RSS feed. Add the text “atom” (a popular RSS feed format) after the second “search”, and you can turn any of these into an RSS feed. RSS feeds are XML data, so you can extract useful things like how many posts are returned, and other very interesting aggregate data.

So, this URL:

http://search.twitter.com/search.atom?q=%22oreo+cakesters%22 starts to return some data a Kraft product manager should be interested in!

Oh, and don’t forget to add a smiley-face :) on the end of a search to return only positive tweets and a :( to return negatives. So if you want to know whether they like your cakesters or not, and to what extent, compare

http://search.twitter.com/search.atom?q=oreos%20 :)

with

http://search.twitter.com/search.atom?q=oreos%20 :(

Now that we’ve covered the basics of Twitter search, here’s what’s coming up in part 2: how to extend Dynamics CRM with Twitter search results.

Leave a Comment

Display a Google Map for an Account

Recently I delivered a private bootcamp for a consulting firm, and one of the students in that most excellent group embarassed me by finding a piece of information on my own site that I couldn’t find! It turns out she was authenticated on our Student Portal and this little nugget was a locked-down announcement on the portal. I was anonymous at the time and it wasn’t exposed outside. A little too well-hid, I thought to myself, so I re-used it for a blog post.
 
here’s the orignial post, from April of 2008: 
 
I’d been close on this a bunch of times but kept getting a script error (something like “GMap Application undefined…”). But then in San Francisco, Glen Willson of Millenium Systems showed me this code snippet that actually works! Here’s the note from Glen (with working jscript):
 
 
This is how I did it:  Made a new tab with an iFrame, added a custom bit value (yes or no radio buttons) called “shmap” and added this code as an onchange event.  Enjoy!!  …and don’t forget my credit on the web page!
 
if (crmForm.all.address1_postalcode.DataValue != null){
crmForm.all.IFRAME_gmap.src = “http://maps.google.com/maps?q=” +
crmForm.all.address1_line1.DataValue + “+” + crmForm.all.address1_city.DataValue + “,+” + crmForm.all.address1_postalcode.DataValue;
}
else
{
crmForm.all.IFRAME_gmap.src = “about:blank”
}
 
*******
 
There you have it. Thanks Glen — you rock!

Leave a Comment