Embedding Sales Analytics with Salesforce Canvas

By Ellie Fields 2013/11/01
One of the best ways to ensure your people have the data to make the best decisions is to embed analytics right into the systems they use every day. This is definitely true for sales: most salespeople live inside Salesforce, deciding who to call and when and planning account strategy. In this video we look at embedding sales analytics right inside Salesforce.com using Salesforce Canvas.

The video shows the process a salesperson might go through: opening Salesforce, looking at an account summary, clicking into an account and updating opportunity info based on a recent conversation.

The difference is that by using Salesforce Canvas and Tableau, you can embed a dashboard to give the salesperson an overview of their accounts and opportunities.

Then you can provide insights as the salesperson looks at individual accounts and opportunities, presenting information visually instead of forcing that person to read through text.

How does it work?

  • Connect to Salesforce.com from Tableau Desktop.
  • Create dashboards in Tableau Desktop
  • Publish dashboards and data to Tableau Online or Tableau Server.
  • Set a refresh schedule for the Salesforce connection in Tableau Online or Tableau Server.
  • Use Salesforce Canvas to embed those dashboards.

UPDATE: Documentation for this solution is now available.

Now you've got Salesforce data updating in embedded analytics, right inside Salesforce itself.

UPDATE: There has been some confusion about whether this is a live connection to Salesforce. It is not. You must define a refresh schedule (ex: daily, 4x per day, etc) using Tableau Server or Tableau Online, and the data will be as fresh as the last refresh.

Information science tells us that data presented visually augments our natural style of thinking. Why not put visual analytics right inside Salesforce to give your salespeople that advantage?


Submitted by Gaeta - Sergio (not verified) on

Very nice idea, in our company we try to do something very similar. Silva, Cristiano IT Consultant at http://www.sbg.com.br

Submitted by David T. on

Will you be posting a walk-through on how to set this up using Salesforce canvas as well? :-)

I am unfamiliar with the Canvas so my questions might not make sense...

How do you make sure that the dashboard being embedded shows the data only for that account? Or that the home screen shows data for the logged in user?

Couldn't this also be used as a way to funnel ERP order/shipment data into Salesforce using a tableau dashboard? For example, if I have a field that shows the ERP Account ID, can I have an embedded dashboard pulling that data from a Tableau online report?

Canvas lets you use parameters so that you can specify which account or opportunity to show, or filter to a salesperson. WE are looking to post a how to in the coming weeks or months, watch for it !

Submitted by Satheesh Kumar A. on

This is what I am working on for the past one week.... But stuck up in configuring the Canvas.... Looking forward to see how to embed with parameters....

Submitted by Guest (not verified) on

Nice Post.
Awaiting for 'How to' post since long..
Can you please at least confirm whether Heroku would be involved while using Force.com Canvas from Salesforce end?

Submitted by Samson K. on

Hi. Heroku is not necessary but possible. I simply used the SFDC Canvas SDK found here: https://github.com/forcedotcom/SalesforceCanvasFrameworkSDK. The SDK has an canvas example using Heroku for a simple canvas application. I simply incorporated the SDK into my own web application to delegate canvas requests to Tableau Online or Tableau Server. Hope this helps.

Submitted by Guest (not verified) on

Thanks Samson for the response.

I had some further doubts. If you can clarify then it would be great.

There's a simple example of Hello World Canvas in SalesforceCanvas SDK.
Initially they are doing signed request and then in body they are putting Username.

I think we need to do same but how to embed Dashboard in body? Also would signed request remain same as shown in the example?

If you can clarify in detail then it would be great.


Submitted by Guest (not verified) on

Thanks Samson for the response.

I had some further doubts. If you can clarify then it would be great.

There's a simple example of Hello World Canvas in SalesforceCanvas SDK.
Initially they are doing signed request and then in body they are putting Username.

I think we need to do same but how to embed Dashboard in body? Also would signed request remain same as shown in the example?

If you can clarify in detail then it would be great.


Submitted by Andrew (not verified) on

Looking forward to the "how to" on setting this up with Salesforce. Can't seem to find much info about this at all!!

Submitted by David Timmerman (not verified) on

Ellie -- thanks for the session out at Dreamforce last week! It sounds like a lot of us are really excited about adding powerful tableau analytics directly in Salesforce. Can't wait for the in-depth how-to/Salesforce app!

Submitted by Guest (not verified) on

Its been long. Hopefully 'How to' is coming through pretty soon.

Submitted by Samson K. on


Sorry for the delayed response. Yes, you can embed using the self-signed request just like the Hello World Canvas example. We are finalizing documentation/examples on being able to do this with canvas. Sorry for the long wait but should come out soon! Stay tuned.

Submitted by Guest (not verified) on

Thanks Samson K. Will give it a try however documentation/examples would definitely help and make things easier.

Eagerly waiting for them.

Submitted by Colin F. on

To an expert on this solution,

Does this only work with the existing SalesForce data connection inside of Tableau? We have several custom SFDC objects and a very large instance of SalesForce and that connection always times out, therefore we extract the data through an API and setup a SQL Server/SAN to extract data into Tableau Desktop and publish that to Tableau Server. The idea of having actionable live data would be revolutionary and I want to pursue this further but don't want there to be an inevitable brick wall.

Hopefully there is someone who might be able to answer some questions?

Submitted by Samson K. on

Hi Colin,

Your SQL Server/SAN will work with this solution. You can publish your SQL Server connection to Tableau Server as an extract and have it run on a schedule instead of having to publish it all the time. We have a customer that embeds dashboards using non salesforce data but wishes to integrate the dashboard with Salesforce. Hope this helps.
We also have a community site where you can post questions as well. http://community.tableausoftware.com/community/sfdc-canvas-adapter

Submitted by Bojan (not verified) on

Do I have to sign in Tableau Online whenever I open my "Accounts Dashboard" in SalesForce? I followed all steps in your documentation, and every time I access my "Account Dashboard" in salesforce, sparkler prompts username and password to access Tableau Online viz.

Thank you

Submitted by Samson K. on

Hi Bojan,

Unfortunately, that is the case with Tableau Online. This can be resolved by installing Tableau Server in the cloud(such as AWS) and configuring SAML or trusted authentication.

Submitted by jackstewart (not verified) on

Awesome !! i really appreciate the way you wrote it thoroughly :)
humor quotes

Submitted by Samson K. on

Thanks for the feedback, Jack. Very much appreciated.

Submitted by Guest (not verified) on

Will the Tableau add-on be view-able/accessible to those who have a Salesforce account, but not a Tableau account?

Also, will the dashboards be able to hyperlink directly into an Account or page? This is a great add-on, but these features would be helpful.

Submitted by Samson K. on

The Salesforce and tableau account need to align together.
Regarding the second, yes you can navigate to an account, opportunity etc. You can create action links which provides this functionality.

Submitted by Guest (not verified) on

Thank you for the clarification!

Submitted by Marina Yana (not verified) on

Thanks for sharing! It is very interesting, I would like read more similar information!

Submitted by David B. on

If I have Tableau Server not exposed to the internet and then want to use this solution with SFDC, can some authentication (like SAML) be used to get the SFDC user authenticated from the internet into Tableau Server without exposing our server to the internet?

THANKS for the info!!

Submitted by Kumar S. on

We are trying to embed the tableau dashboard to Salesforce canvas using the same approach provided by we are not able to do so.
We are stuck up at the position were the SPARKLER_CONSUMER_SECRET key gives a NULL while verifying through cmd.
Also , we checked through the Canvas App previewer , we could see the app there and while clicking on it - no error message is prompted.

Please advise.


Submitted by Samson K. on

Hi Kumar,

Can you elaborate where you are getting stuck? Is it trying to set the SPARKLER_CONSUMER_SECRET or after the fact. Are you doing this via Heroku? The more information you can provide the better. Feel free to post in our community site under the sfdc-canvas-adapter forum. http://community.tableausoftware.com/community/sfdc-canvas-adapter

Submitted by Waleed Abdelmohsen (not verified) on

Is there a way to access the embedded dashboards on iPAD while offline?

Submitted by Samson K. on

Hi Waleed,

Not exactly sure but would presume no at this time. Can I ask why you would want this functionality? The dashboards are embedded from Salesforce(a cloud based service) which requires being online. Not sure if they have added offline capability to the SF1 app.

Submitted by Xavi (not verified) on

Is it possible to integrate lead's object information? Or only it's available for accounts and opportunities?

Thanks in advance!

Yes, you should be able to connect to any table in Salesforce using the Salesforce connector.

Submitted by Chad (not verified) on

Every time I try to refresh all of my Salesforce connections at once from tableau I run into two issues: one, I have to type my password about 15 times (once for every connection) and second, it never works. Always locks my Salesforce account.

I can refresh each one individually without any issues. This sucks.

Submitted by David T (not verified) on

Chad I would really recommend that you set up your refreshes using the command line tool so you don't have to actually open a workbook to update your data sets.

What I do is create a .bat file with all of the commands to update each data source and I run it each morning.

Submitted by Chad (not verified) on

I'm not aware of the command line paramters for Tableau Desktop that will allow for this?

Submitted by David T (not verified) on

I can't post the link because Tableau is blocking it, but google "Tableau Desktop Command Line Refresh" and you'll find the link.

Submitted by Chad (not verified) on

Thanks! You're the man.

Submitted by Dharmendra P. on

Hi Tableau Experts,

We want to embed Tableau reports into SFDC page. As per tableau.com solution is to use SFDC Canvas adaptor(Sparkler) and use Trusted authentication between Sparkler server and Tableau server.

Out Tableau implementation and scenarios.
We have Tableau exposed outside of company network. SSL certs are installed at load balancer. User can access Tableau server outside of company’s network with valid SSO id. SFDC and Tableau are on same SSO. So user authenticate on SFDC they he/she will not get login screen when access Tableau reports because of SSO.

Question: By considering above our scenario, is it possible to embed tableau report into SFDC without using Sparkler? If answer is yes, how we can do that?


Submitted by Tom W. on

I'm curious about doing this as well. We have a similar setup.

This one's from Ozgu:
Yes if you are using the same SSO as the IDP for Salesforce and Tableau Server, you can embed Visualizations within Salesforce without using the Sparkler app.

Submitted by Ramesh K. on


We deployed sparkler and tableau in same server and sparker able to make contact with tableau

after deployed the sparkler we have entered https://host/sparkler/sfdc/canvas in salesforce app canvas url

but its not at all working can you please help me on this

Submitted by Vinayak Mhalunkar (not verified) on

After reading the "How does it work?" section I have couple of questions,
1. Step one tells that we need to connect to Salesforce.com from Tableau, does that mean we are pulling the data from Salesforce.com to build the Tableau reports/dashboards? Can we omit this step and connect to any database to build the reports?
2. What is the process to show the Tableau reports/dashboards (developed on top of regular databases instead of using the Salesforce data) on Salesforce.com?


Submitted by Ozzie Gurkan (not verified) on

Is this Salesforce1 mobile app compatible?

Submitted by Raj (not verified) on

Hi all,

I want to Integrate Tableau online with SFDC Canvas - Configuration.
Can you please provide me the steps regarding this.

Submitted by Nikhil (not verified) on

Hi Experts,
we want to show Tableau reports in our SFDC instance but our Tableau Server is not exposed to the internet, can some authentication (like SAML) be used to get the SFDC user authenticated from the internet into Tableau Server without exposing our Tableau server to the internet?

Submitted by Ketan Benegal (not verified) on

Does this work on Salesforce1 and Salesforce Lightning?

Submitted by Michael L. on

Does anyone have a link to a working demo video?

Submitted by Jorge M. on

Were you able to embed them without Sparkler?