Salesforce Integration

Is there a way to integrate Metabase into Salesforce? And have the data updated 1 or 2 times a week?

In what direction do you want data to be updated in this integration?

  • Have to ability to create Metabase reporting based on data in Salesforce?
  • Or, export results etc. to Salesforce?

Which Salesforce record types are the ones most important to you?

edit: For the first bullet point above see this:

If you’re talking about using Metabase to generate reports based on Salesforce data, sure. I manage an ETL pipeline to move relevant data to an own-hosted Postgres instance, and we do reporting from there.

Thanks for the quick reply. I am trying to have metabase results automatically be exported to Salesforce. Essentially, fill certain fields in Accounts in Salesforce with Metabase data.

Does that make sense?

It sure does make sense. At least as a pretty high level statement of your use case/business need.

Problem then of course is that Metabase and Salesforce does not come with a standard way to talk to each other, so “some glue code/tool” living in between Metabase and Salesforce is needed (aka ETL = Extract, Transform - if required and Load as @dodongo mentioned above, just in the opposite direction, namely from database/Metabase to Salesforce) AND also that “fill certain fields in Accounts” can either be quite simple or a bit more complex depending on your actual business rules, meaning need for more “transform”. The simple end here would be that that you have a common unique Account id, and you always will update e.g. the same 3 fields with latest Metabase values with Account id as lookup key = “no transform” needed.

So we’re back to that you need to code/assemble from pre-existing pieces or pick such a tool. That choice depends on what you’re already familiar with/comfortable with.

I think a good first step if you don’t already have some tooling in mind is to start manually downloading CSV or JSON from the relevant Metabase Question(s?) and import manually into Salesforce. It’s easier to automate something you have “specified by doing manually” first. Makes sense so far?

To get the data into Salesforce it looks like it’s something that could be simple to automate with e.g. below. But since I don’t know your specific requirements and environment, I’ll stop rambling here now and hand over the mike to you.

1 Like

@dodongo I’m looking into setting up a similar pipeline to pull in data from Salesforce into Metabase. What are you using to do it? Are you using simple-salesforce or salesforce-oauth2? I’d love to chat with you about it if you have some time! Thanks!

I use Panoply to pull and store the data. It’s nice because I don’t have to manage the ETL pipelines—the data is refreshed in Panoply nightly, but it could be more frequent than that. https://panoply.io/integrations/metabase/salesforce/

Hi Tony,

Salesforce doesn’t like to make this easy. The way I did it was to use Talend Open Data Studio to load Salesforce data into a Postgres db I set up. Here’s a guide on how to do that: http://luan-itworld.blogspot.com/2014/09/auto-syncronize-salesforce-data-to-mysql-postgresql-with-Talend-Open-Studio.html 7
Also, you may just use some pipeline connectors from Workato etc...

Also, apparently, there is an MIT-licensed JDBC driver for Salesforce already, so that could be a better path than basing it off the JSON driver: Github tut

Anyway, there's always a chance to have a Salesforce integration consultancy involved :slight_smile: