@r_voyager
Using some of the ideas from @planetparker, I was able to figure this out and track email opens from Power Automate. This took me 2 separate flows, plus the api link embedded in whatever other flows you send emails from. Here is a sample of the flow:

There were 2 areas of complication when creating this process.
- First, you need some unique variable that is consistent in your email and your database, but it has to be embedded in the email so that you can retrieve it when adding the email data to a database or MS list. That is what you should use the "Relative path" for. I used the flow id so that i did not have to create my own unique variable for every email. Plus - when sending an email, you do not have the internet message id or graph message id.
- Second, some email clients (outlook mobile app specifically) call the api twice when you first open an email in their app. I created a workaround by converting my email tracking flow to a non-concurrent flow requiring each run to happen separately. Then, I added a check to see if the selected item in the database had been updated in the last 30 seconds. If true, do not update the data with another view, if false, add 1 to the current "Read Count" value.
You take the url from the "When a HTTP request is received", place it in an img tag as the src (ie. <img src="api address" height="1" width="1">), replace your unique parameter with a value unique to the email, and place it at the bottom of the html email in the flow where you are sending an email from.
Then you need a flow with the trigger "When a new email arrives" (I used when a new email arrives in a shared mailbox v2). In this flow, you add your email data to your database along with the unique id that was embedded into the body if the email previously so that you can search the database when the api is called.
This is simpler than I thought, but it does come with its complications. I would be happy to provide more details and examples if someone comes across this and wants to add this.