Salesforce Wave 101 – Dataflow JSON for Idiots

This is the JSON 101 version of working with Dataflow JSON. I’m going to skip anything that isn’t the straight up basics.

So there you go… downloading the JSON file because you:

  • Need to bring in additional fields
  • Want to bring in new objects
  • Just curious about what is happening

I Read This How?

To begin with the downloaded JSON file is ugly. Like “barely human readable” ugly. You need to format it. Fortunately this site does a nice job of both formatting and validating JSON.

What’s Happening Here?

There are basically 3 actions occuring within this JSON file:

  • sfdcDigest – This is where you pull data from an object
  • Augment – If you need to connect two object’s data together, you need a join. Account to Contact for example
  • sfdcRegister – The creation of the dataset and assignment of security

How about some examples? Sure….



I’m pulling fields from the Opportunity object here. Notice that I identify via the field name (NOT label) all the fields I want to pull. This is obviously a snippet of all the fields that I would really want from the Opportunity record but it does work.

Now if I just registered this I’d basically create an island of data. I can’t connect it with an account or the owner. In fact all I would see is the Account Record ID’s. That’s no good. We need to join it up.

Augment but we call it a Join


In a SQL world we would call this a JOIN. I have two sides of the Join:

  • Left – it is being stated as the Extract_Opportunity that I defined above as “left”:”Extract_Opportunity” (hey that looks familiar)
  • Right – Its being stated towards the bottom as being the Account: “relationship”:”Account”.

(now truth time it is actually calling another Augment “Join_AccountOwner. But let’s not get carried away with this.

The main point of above is that you are asking Wave to look at every AccountID in the Opportunity sfdcDigest and link its matching Account data using the two keys specified above. The two keys have to match. Account ID = Account ID. And obviously I recommend that these keys be unique.


Okay so we have some data downloaded and we created a join (or 4 depending on needs) and now its time to create some datasets.

         "rowLevelSecurityFilter":"'Owner.Role.Roles' == \"$User.UserRoleId\" || 'OwnerId' == \"$User.Id\"",

Now what in the world is going on here?

  • The name and alias are what your users are going to see as the dataset name in Wave.
  • The source will be the joins you built above
  • rowLevelSecurityFilter – oh baby that is outside the perview of this discussion but basically the above will force security that you will only see data at your level of the role hierarchy and below. So a Sales User will see a certain sub-set of data while the Sales Manager will probably see more.

What Am I Going to Do With This?

We are fortunate people as more then likely we will be downloading a JSON file from Wave and then adjusting it. But at least you now understand the functions happening here.

  • Need to add a new field? Change the sfdcDigest for that object
  • Need to bring in a new object? Then you need to do all three actions

Salesforce Wave – Dataset JSON Download

Part of the deal with Wave is that you need to edit and mess with routinely the JSON files that power all the functionality. If for example you want to bring in new fields or objects into Wave, you can either:
Attempt to edit the JSON file for a particular dataset (hmmm)
Edit the jSON file for the who Dataflow.

Unless you have some massive datasets, its probably the easiest just to edit the dataflow’s JSON file.

Pretty easy to get there. Its within the gear icon labelled Data Monitor
Switch over to Dataflow View
Scroll down to the Dataflow you want to monkey with and click “Download”
Obviously once you download and edit it, you need to upload the updated file for it to take effect. Fortunately the link to upload is there as well.

IF YOU WANT IT TO TAKE EFFECT IMMEDIATELY – then you need to rerun your dataflow. Otherwise the new settings will take effect on the NEXT run.

Be aware that if there is an existing dataset for an object that your edits here will NOT affect security. For that you need to edit the dataset itself and update there. (Thats true as of March 2016)

Performing a Fuzzy Lookup in Excel or Google Sheets

Many of us have to do matches of data in excel to update Sometimes though that data is not exact. Inc. versus Incorporated. Or its John A Smith in one system versus John Smith in another.

Instead of manually searching and fixing it, Excel (for Windows only unfortunately) has an Add-In that does a nice job of fuzzy matching.

Here is the link.

After installing the add-in into excel the steps to use it are pretty basic and the readme file contained within the setup is incredibly comprehensive.

UPDATE: We found an Add-on to allow you to do something similar in Google Sheets:

Google Sheets Add-on

What is Fuzzy Matching?

Lets say I have a data set with the following names:

  • John Smith
  • Jane Doe
  • Ronald P. Moore

And I have another data set with the following names:

  • John R Smith
  • Janealicious Doe
  • Ron Moore

In a standard pattern match, these data sets would never line up if we were using the names to match. Well a fuzzy match tool will break down the names into their basic components and try to match it all together. Is it 100% perfect and reliable? No probably not, but it can save a dramatic quantity of time especially if you know there are other data points that can be used as validators.

Could be a great timesaver for you if you’re playing with data.

Why I am NOT Speaking at Dreamforce

Wait.. What?!

Normally these posts are all about “Come and listen to me speak at xxxxx!” Or “I’m rad and will educate you. My session will rock.”

I’ve been fortunate to speak at quite a number of Dreamforce events. I think I’ve spoken at one session for, at least,  the past 6-7 years and also attended quite a few because of the Salesforce MVP program. Here are the daft realities:
• There will literally be over a 1,500 sessions this year.
• With very few exceptions, ALL will blow your mind.
• With the Agenda Builder now live, most will be sold out quickly. (Hint, hint, get there early)

These are wonderful facts and demonstrate the power of this event. Many first timers, and even us seasoned and jaded veterans, walk away from those days ready to make amazing changes in our organization and how we use the tool.

The MVP crowd is notorious for wanting to help and deliver these sessions. It’s not unusual for an MVP to have 3, 4, or even 6 sessions at a Dreamforce. For many of us, it’s how we are “fed” to provide better help for all. And I’m not complaining about that. Quite the opposite. Like I said above, sessions are typically brilliant.

The Challenge of Dreamforce

But for whatever purpose Dreamforce sessions typically hover on two tracks:
• I’m a new or intermediate admin trying to solve something
• I’m a developer who is working on the platform

I have desired more clearly defined skill sets and levels for session abstracts. As an admin with 15 years of experience, I don’t need a formula session or “this is what the Process Builder can do”. I’m also not going to immediately utilize how to use Angular JS in a Heroku environment.

Let me use an analogy to help with this. I don’t need to take a beginning drivers course every year and I certainly cannot immediately use a course titled “Extreme Off-roading and Water Fording”. While those courses would be a bucket load of fun, I can’t apply them on an everyday basis during my commute.

All of these are awesome sessions but they don’t feed people like me. At some point I hope Salesforce starts to realize the above and helps us out. Ultimately the benefit of Dreamforce is relevancy.

But that’s another soapbox moment.

So Why are You Not Speaking Again?

The real reason I’m not speaking this year is simply that our ecosystem is astounding. Have you ever stopped and considered the vastly different industries and situations Salesforce customers are participating in? These people have experience to share and in the end the purpose of these days is not to show yourself off, but instead to learn from others. Walking away with some new tricks and skills that would have be next to impossible to learn in any other place.

It’s time for some new voices. I challenge fellow MVP’s to find those new voices and promote them, instead of speaking themselves.  It’s time for us to be the leaders and not the creators of everything under the sun.

First Name (required)

Last Name (required)

Your Email (required)


Your Message

Forcelandia Presentation


I was fortunate to be invited to the First Annual Forcelandia Developer User Group event. This was Portland’s first super user group event but on by the Developer User Group team and they rolled out the red carpet. We had a great lineup from the salesforce MVP’s and salesforce staff for approximately 100 participants.

There were two tracks – one for developers and one more for the admins. The devs learned more about Javascript Remoting and Heroku while the admins spent time on Wave, Process Builder, and understanding APEX.

The event was an amazing learning opportunity for all the people attending. Peter Coffee was the headliner and delivered a presentation about the growth of mobile, apps, and internet usage. I took away a few good ideas from that presentation alone.

I want to thank the group for putting on this amazing event, especially Angela Mahoney and Larry Latimer.  This team is already planning for next year (Forcelandia 2016) and I can’t wait to come back. After the event we also spent some time exploring Portland. We posted a few pictures below.


Want us to bring the road show to you? Just let us know.
We bring the entertainment no doubt.

First Name (required)

Last Name (required)

Your Email (required)


Your Message

5 Admin Tasks You’re Probably Not Doing

I know it seems crass and some of these are probably will take some time to implement but when we work with clients we see these five actions coming up as consistently not done. And so you have to ask yourself, “Self, SHOULD I be doing these things?” We think so….

Keeping a backup

If you’re an old school IT person like myself, then you know how important it is to maintain a backup. But you are not typically using the backup to restore the whole database. Nope. You are using it to restore someone’s goof up (typically you’re own), or you need to move data from one system to another. So many great uses of a backup.

The easiest method is to use the Data Export feature in Setup. Please set up a schedule and store it somewhere safe. If you are not storing attachments, the database file will stay relatively small. But you will get .zip files containing one CSV file for each object in Salesforce. Attachments are a bit more exciting (much larger files) but that’s a conversation for another time. Alternatively there are some great ISV partners that sell backup solutions. Spanning is one of those examples, as well as Backupify.

Don’t ask Salesforce to restore your data. It gets pretty pricey.

Cleaning out old reports
So you’re the admin that, like the Fairy Godmother, has created a report for every user needing every kind of situation report imaginable. Congrats! You’re a rock star! You really need to teach you’re people how to create their own reports. Let me ask a question: how often are they being used? You, and probably a good block of your users, are having to sift through all these reports when they are searching for the ones that really matter. There is a report type available that can show you the times that a report is run as well as other statistics. Run these every so often. Move the unused reports to a folder that only Administrators have access to, for a while.  If it’s not missed,  delete it!

And then while you’re doing that – train a few super users to create reports. Honestly. Huge time saver.

Tracking field usage
I gave a talk about the habits of a successful admin. One of my points is the that it’s not necessarily duplicate data I despise but, bad, missing or useless data! Do I really need to store that account ABC Inc. received the 2013 Christmas Card? Go and track down those fields that are routinely blank, are used by one person or have outlived their usefulness. Then get rid of them! (You do have a backup, right?) We find Field Trip particularly easy to work with and full of usefulness.

Listening to your users
We recently performed a one-day workshop for a client talking about their roadmap of work. Now while I discuss roadmaps below, let me discuss something more important than that: are you listening to your customers ie: your users? You may have the whole world figured out but if you’re users are asking for “X” and you build “Y”, it will be similar to building a schooner in the middle of the Sahara. So pretty and utterly useless.

Find a way to regularly discuss what is being built and get feedback from your user base. Build it in. Even Salesforce’s Project Managers are tasked to “retire” a certain amount of IdeaExchange points every release.

Maintaining a roadmap of work
What are you working on this month? What about next month? Have you thought about what will be necessary 6-12 months down the road to match business needs? Even with a small deployment of the tools, planning for the needs in advance can make a difference in the quantity of time necessary to deliver those goals. Some of us admins are part-timers, so we have to be extra careful to deliver the goods while we do other things.

It could be a simple spreadsheet or something way advanced, but in the end you should be able to answer:

  • What are we working on this month with concrete details?
  • What is on the plan for the next 2-3 months?
  • What are looking at for next 6-12 months?

Write it down, share it with your user base, get feedback, then alter accordingly.

Why not chat with us?

We work hard for our clients to deliver something amazing each day. Why not contact us to learn how we can help you?

First Name (required)

Last Name (required)

Your Email (required)


Your Message

Midwest Dreamin’

Ever just wake up one morning and KNOW it was going to be a good day? Yeah, that happened in July in Chicago.

Midwest Dreamin’ is a regional User Group. This is the second year of this extravaganza. Last year Steve Molis and I brought the formula comedy road show, so this year the conversation was “Top Habits of a Highly Successful Admin”.

ask the expert

Before the session though, I caught up with several other Salesforce MVP’s and together we worked the “Ask the Expert” booth, in the expo hall. I’m continuously amazed at the knowledge and experience of what people are accomplishing, with this service. Our band of misfits have been playing deeply in the Marketing Cloud, Service Console, incredibly large deployments, and people trying to deploy as fast as possible.

Dreamin egg

If you are an Admin or Dev of Salesforce, spend some time and talk with your fellow attendees. “Day of Dreamforce” is probably the best description of the day.  In the end these kinds of days are all about what you put into it. I have been doing Salesforce for longer then just about anybody and I am still learning from others. If all you do is sit through sessions and drink the coffee, you’re missing the point of these events.

I was able to sit through some of the sessions. Cory Cowgill talked about how to utilize the Analytics API, an Open Source graphing tool, and JavaScript to create amazing info graphics with Salesforce data.  I then saw a presentation from the Salesforce Foundationwho are building a custom deployment of communities primarily focused on Education. Sounds like the Non-Profit Starter Pack all over again. That may be a good thing!

There are a number of these “Super User Groups” being scheduled. Reach out and find them. Awesome education.

Here are a few pics from the time there:

Want to talk more about Salesforce? Get in touch with us:

First Name (required)

Last Name (required)

Your Email (required)


Your Message

The Obligatory “Things I’m Thankful For” Post

Last week was Thanksgiving; also known as my favorite holiday of the year. I gather friends, family, neighbors, whatever and invite them to share some food cooked by Yours Truly. Most go home without a food issue or allergic reaction. But its my favorite since its a holiday where the shear idea of gifts, drinking too much, wearing something nice, or putting on a silly hat is not required. All I ask is that you show up, not look like a slob, and then eat and share some time. What a wonderful idea.

To go along with this holiday are 250.1 blog posts across the Internet describing the “Things I’m Thankful For”.  I didn’t see any reason why I shouldn’t add my own to the heap and let the world sort it out.

Some of the Competition are Friends

I can count on two hands (and probably a toe or 3) the number of people that in a traditional software world would be my direct competitors but I consider friends. There are those that I’ve helped start their own firms or go to work for a competitor. Issues and problems I’ve personally faced have been shared with them and I have certainly received some great advice from some of them. I think the others just were shaking their heads in bafflement with my decision-making which I don’t blame them at all. But in the end I appreciate their time and the fact that they are in the same space as me.

Software Not Vaporware

We have a few clients who are healthcare based and so their software needs go way beyond These poor IT people are looking at software packages to purchase to solve some of their problems. That is of course their prerogative. When they share the sites of these software “systems” here is what you typically find:

  • A bucket load of stock photography of people smiling, giving each other high fives, or deeply listening to someone else.
  • Something I call buzzword jumble. Take a bunch of buzzwords that does good for SEO and marketers and then throw them into sentences as often as possible. (ignite, consensus, collaboration, SAAS, Cloud-based, Standards meeting, Best in class, and synergy)
  • Absolutely ZERO description or screen shots of the product. Are you afraid of others seeing it?

“I just bought this awesome car. It goes up to 200 mph, gets 70 MPG, and is made from balsa wood. You want to see it? Why? Just believe me that it rocks!” Yeah. Right…

What happens in the salesforce space? Not prepared to show the goods on first pass? Forget it. Live in “synergy paradise”? Consider yourself evicted to live in “buzzword purgatory”. The people that build successful apps in the salesforce world are deeply passionate about what they sell and want you to see them immediately. The rest are weeded out.

The Truly Sharp Ones are Sharing

I am fortunate to be a member of the Salesforce MVP group. To really talk about it is another post but there is a video on our YouTube channel where Matt goes into some great description. But basically here is a group of people who go out of their way to share their knowledge to others.

This is free knowledge available to the world online or at user groups or one on one. This means two things: its amazing content and these people are FORCED to continue innovating. (damn it, how did that buzzword get into this post)

For all of us these people continue to come up with great ways of using the service and that is a seriously good thing.

Retiring IdeaExchange Points

If you’re new to salesforce then you may not fully appreciate the IdeaExchange. Have a great idea about improving the service or find something positively glaring missing with a current feature? See if someone else has already posted that idea and vote it up. Don’t see it? Go post a new idea.

This is a chance for salesforce as a business to listen to what their users are looking for and build against it.  Recently they have been on a tear to get some of the higher profile ideas out the door as features and I would think they will continue to do so. We can’t always get what we want but we can get what we need. Or something like that.

Anyway my 800 words of what I’m thankful for. What about you?

Want to talk more about Salesforce? Get in touch with us:

First Name (required)

Last Name (required)

Your Email (required)


Your Message

Why a Salesforce Project is Like Going to the ER

On the last day of Dreamforce I took a fall while delivering my session. As far as I know, this is the first speaker-related injury in the history of Dreamforce. That effectively ended my week early and I missed a few engagements because of it.

When I was home the pain wasn’t going away and me being the stubborn sort that I am finally succumbed and went to the ER in my hometown. Now I don’t know if the ER’s near you are like the ones near me but hospitals seem to be spending serious shekels to improve their experience. There are billboards in the neighborhood showing average wait times so that you c an select the ER with the lowest wait. As a note – Starbucks if you were to start placing wait times in nearby shops I would consider that a wonderful public service. Just an idea.

Into one of these “modern and efficient” ER’s I go thinking that based on all the advertising my experience would be fast and efficient and my needs, being somewhat basic, would be an easy case and I could go about my day.

Oh. Me. Of. Little. Knowledge.

What transpired was 4-5 hours of the oddest and bizarre process management in my life. And after experiencing it I began to realize that many Salesforce deployments and consulting projects go through a similar process. To be honest it scared me and made me realize that we all could do better if we recognize the phases.

Phase 1 – Recognition

I walked in the door of the ER and the receptionist takes my name and assigned me a medical bracelet with a number. I then fill out a very short form with my name and complaint. After which I am asked to sit down with everyone else in the waiting area where the following is happening: a woman is hacking a lung into a small bowl, a child is wearing a surgical mask due to his disease, a younger couple both looked like they were in a fight and needed patching (I don’t think they fought each other), and a poor elderly lady who was just confused and enjoyed yelling had something wrong with her leg.

All of a sudden I felt small and very much low priority. But I had my laptop, a place to plug into, free wifi, and a coffee machine so I decided to stick around. If it wasn’t for the MRSA probably flying around this wouldn’t be a bad place to work on a regular basis actually.

Let’s correlate this back to Salesforce. This is someone talking during the sales cycle. When someone talks to sales we get your name, address, phone number, and hopefully chief complaint. Was there a deep dive? Did they ask for my insurance cards/some substantial background info? Nope. They just wanted me in the queue.

Phase 2 – Triage

After about 45 minutes I was shown into a small room where an ER nurse performed triage. Was I breathing? Yes. Was I about to succumb to the Black Death? Nope. Great. Back in queue with you! After I left the room, where I did my best to entertain them hoping for fast service, I’m certain they all snickered and wondered how long I was prepared to wait it out since their shifts just started and needed some normal entertainment. Maybe not. It was at that point I figured out where that counter on the billboards stopped. It was right here.

When we are working with sales opportunities we need pull others in with some technical expert to do a clinical triage of your situation and see if we can help you.  Its usually on our clock and schedule unfortunately.   One of my mentors had a saying, “If you’re going to fail, fail fast and move on!” I wish more Salesforce people would do the same. Just say it’s above, or below, your skill set and move forward. Going 14 rounds before determining that you can’t handle this or do not have the manpower to effectively work the project is not helping anyone.

Phase 3 – Cash, Check, First Born, or Kidney?

About an hour passed between triage and the next visit by someone. During that time the poor lady hacking a lung was becoming far worse and I believe the whole room was hoping she was next, the couple in the fight that walked in together we’re being seen at different rates through this process, and the kid with the mask was just looking more pale. Eventually a Physician’s Assistant came out to examine the hacker to say something encouraging but then quickly left the lady in the waiting area.

What came next for me was nothing short of hilarity. A woman came with a push cart with a laptop, external screen, card reader, signature pad, and a huge battery powering it all to where I was working. Her job was to get me into their EMR and setup a method of payment. If you checked into a hotel the process is similar. Or at least that is what I thought.

The number of screens to do what I thought was a simple admit was hilarious. I counted 12. And the number of different user interfaces was at 5. That included the post office Zip + 4 lookup website. And we’re there workarounds? Oh yeah. My insurance was in a different class so it had to be searched with a special option to find it but it took her a few moments to realize that detail and then it just “didn’t work right” so she kept moving forward.

You have to give hospitals credit, at least they ask for a method of payment before providing any substantial services. As consultants we have a signed agreement and then we hope you pay in many cases. There are those cases that choose not to pay for a variety of reasons. If you’re a consultant it’s just the way it is; it may not be your firm’s fault but it happens.  And not being paid is similar to riding a motorcycle. Its not if you will fall off the bike but more WHEN you will fall off the bike. One day – someone is just not going to pay the bill.

You could also tell that someone from the hospital’s IT department was quite proud of their Frankenstein mobile admission cart. They were all over the place as I found out. And I’m certain that the “Franken-ish” of the solution was not entirely the fault of the IT department. Many software packages in the healthcare space are closed off to innovation. Want to make a change in software? Call the vendor, worship their wonderfulness, be happy when they say the change will take 3 months to be put in place, and have a huge minimum fee to cover it. That is if they respond. There are so many hospitals trying to get EMR’s in place and working these days it’s more of a “scorched earth” policy then a helpful one. They are just trying to get these new hospitals standing that many items and requests of current customers are falling to the wayside. And the idea of an open API and Hipaa do not go hand in hand. (End rant)

Back to our friend the payment agent. Here she is trying to use multiple different systems that barely talk with each other to enter my details in the hope they pay.  Her frustration was fairly high but at least she got to walk around while being frustrated. Proponents of the standing desk unite!

Phase 4 – Diagnosis

Now we’re on hour 3 (or 27) of “Dancing with the ER Stars.” Ms. Hack-a-lictious is joyously out of the waiting area much to everyone’s happiness. The poor couple in the fight have split as they lady was seen but the guy was being pushed so far down the queue he just gave up and left. The kid is still there but the PA did come out and it seems that he is just there for an “he’s ok” rather then “he’s falling apart”.

That same PA finally came up to me in the waiting area. She apologized for the wait and decided to do an examination in the waiting area. Say what? Good thing I didn’t show up with a hernia or something….

She decided that an X-ray was needed and in fact activities started speeding up after this. Let’s call this in Salesforce speak an “active project”.

I am finally called up for some diagnosis. That’s more being shown into the X-ray room and get a few pics taken. I am encouraged to gyrate around on a table in different sultry positions that can be found in many a men’s magazine so that everyone can gaze at the awesome that is my knee injury. With photos! It will be on TMZ later tonight!

After which where am I sent? Yup. Back to the waiting room. Why not? I’m getting well acquainted with my new best friends for the past few hours. And the coffee machine makes something approaching the flavor of coffee.

If you’re doing a Salesforce project this is typically the “kick off”. We’re finally getting inside and understanding the extent of the problem that we’ve signed on to help with. And like going for an X-ray, we take some pictures and gather notes but then we have to go away and digest what we learned many times. Trying to come up with solutions and attempt to fix immediately is usually a bad idea. We may ask your company to answer all kinds of questions and talk about what are your pain points and solutions for a while but on the spot solutions are rare and more importantly rarely work.

Phase 5 – Treatment

The PA said before that I will probably not be shown an ER room due to volume and my problem. Fine. Not a problem. Just tell me that I’m not doing irreversible damage and how about a small pain pill please?

Eventually I am actually shown a bed and two nurses start to do some things. First I’m fitted for the worst performing knee brace in history. Stand up – brace doesn’t work. Walking – doesn’t work. This is awesome. Second I’m fitted for crutches but apparently they thought I was Frodo instead of myself so the position they have me in is more “Hunchback” then “Hunky”. I get it. You want me out of here. Guess what I do to! It’s now four and a half hours and I’ve been here since 1:30 on a Monday afternoon. But I did get a script for some pain meds as well and I’m not going to lose my leg tomorrow.

the worst performing knee brace - in the world....
the worst performing knee brace – in the world….

Here’s what concerns me when it comes to Salesforce consulting. My team and I work hard to avoid this but there will always be projects where people just want to move forward and be live. This may seem harsh but try to avoid that idea. We are not looking to enhance our billings. Instead we want to be certain that your go live is smooth. The worst case scenario is a system made to go live without testing and making certain it fits. A bad fitting or poorly designed knee brace is worse than none at all.

Final Thoughts

If you’re a Salesforce consultant many of the above may sound familiar and you may be saying what I was, “there has GOT to be a faster way to do this!” I’m certain there was in this ER and like many businesses any current process is a merging of “that’s the way we always did it” with “here’s a few ideas to make this easier” and “check out this cool widget!”

Are you as a business ready to throw away everything and rethink the process if it will realize you dramatic throughput? How much is that worth to you?

As a consultant how much time are you willing to give before getting paid to be certain that projects go smoothly?

Is it better to try to move a project from start to finish rather than the process of collect and gather, consider, propose, and implement?

Just a few thoughts I was thinking will limping home on my crutches…..

Want to talk more about Salesforce? Get in touch with us:

First Name (required)

Last Name (required)

Your Email (required)


Your Message