I'm having problems connecting to existing Dataverse tables from a new Dataflow.
I've got several Dataflows running currently, pulling data from on-premises, manipulating it and saving it to Dataverse tables. I'm working on a new Dataflow that needs to reference a couple of those existing tables.
I've built it all in Power BI and it's working fine but I can't successfully translate it to a Dataflow.
If I try to 'Connect to data source' using type 'Power Platform dataflows' I see an existing connection of type 'Organizational account' but when I connect I see nothing under 'Environments' or 'Workspaces' (even after expanding and refreshing). Creating a new connection gives me the message "Invalid credentials" followed by a Session ID.
I've also tried to connect using SQL as the connection type - this also works fine using Power BI but not in a Dataflow. I've done this by trying to set up the SQL connection fresh and by copying the working connection information into the 'Advanced editor'. Either way I run into similar authentication issues. I'm basically repeatedly prompted to connect no matter how I try to do so.
One odd fact - when entering credentials for the SQL connection. When I select 'Authentication kind' I do not see the option for 'Organizational account', only 'Windows', 'Basic', and 'Microsoft account'. I've tried all of these, both with the checkbox for 'Use Encrypted Connection' check and unchecked...
I believe I should be able to connect to these tables. Can anyone give me any advice?
You make a very valid point. The work process for my organization is quite similar. I've struggled with the exact same issue. Unfortunately, while it is very easy to get data into Dataverse, it is a bit more complicated to work with it once it is there.
I discussed this issue with a Microsoft engineer who works on the dataflow team just last week. Here was his answer:
"This [using Dataverse as a dataflow source] is supported today. I will take an action item to update different documentation articles to make sure the explanation I provide below is more accessible. Here are the details:
Dataverse supports an OData endpoint which you can access with the ODATA connector available in Dataflows. You would need to obtain the organization name, and create a URL like this: https://yourorgname.api.crm.dynamics.com/api/data/v9.1/
We are working with the Dataverse team to include their Dataverse connector in the Dataflow’s “Get Data” screen’s list of connectors, to make this process simpler (i.e. you would not need to construct the URL above yourself) but I don’t have an ETA for that just yet."
Before I knew about this, I developed my own crude and dirty solution. I'm not proud of it, but it got the job done.
If I need to merge incoming data with Dataverse data to perform calculations, I simply connect back to the same external source I had initially used to import the data into Dataverse in the first place. So in effect, I wasn't using the data in Dataverse at all. This worked because my application had the same data in both places.
Sometimes, it isn't that easy, because your dataflow needs data that was created within Dataverse, in opposition to simply referencing data that was imported there from an external source and not transformed along the way. So I devised another even dirtier and cruder solution.
Often the values you need to leverage in dataflows are the ones created by users interacting with Dataverse through Power Apps, or indirectly through Power Automate. In those cases, I created a Power Automate flow to update a (*gasp*) Sharepoint list upon the modification of a relevant record in Dataverse. Then, I could easily retrieve it in my dataflow.
I recommend you do not follow this advice. I am a little ashamed of it actually. But sometimes there's a deadline and your minimum viable product depends on things like this working. So I got it working.
You should do what the Microsoft engineer said, he knows his stuff. Hopefully, the Dataverse team comes through with that Dataverse Dataflow connector so no one ever has to apply this nasty solution of mine.
So I encourage you all to vote on @crmkeeper 's idea here:
Cheers and keep 'em flowin'
Use oData, you can find the url for your instance under
Hi @James_L, yes oData is the method to integrate between two Dataverse environments, see this post: https://powerusers.microsoft.com/t5/Microsoft-Dataverse/CDS-to-CDS-Data-Integration/m-p/586311