Upload Image from PowerApps to Flow to SharePoint via an Unused Outlook connector

This is the simplest no code approach to the PowerApps image upload problem so far. Far simpler than with Azure Function, with custom connector, with hacked Flow button via Flow Studio, even simpler than Azure Blob Storage. All standard connectors so no premium required, and no risk of PowerApps trigger resetting and breaking the connection.

This is my simplest method to upload any image from PowerApps to SharePoint

  • No Swagger

  • No Edit JSON

  • No Azure Blob Storage

  • All Standard Connectors

  • No HTTP

  • Can easily add more arguments

Original

This blog post is a cleaned up version of the #Flow Ninja hack 87 thread which happened on Sunday night. https://twitter.com/johnnliu/status/1114863521525669888

Follow me on Twitter and catch the next live hack.

Steps - first a bit of study and exploration

I have a @MicrosoftFlow hack this evening to send files from @PowerApps to @SharePoint I have been thinking about this one for a while. So if you are still awake, follow along.

First - I check the Flow button trigger.
Then create a PowerApps trigger, use peek code to study

Double check SharePoint connector - I read this with FlowStudioApp - there's no method that takes format: byte. Everything wants format: binary.

I spent a while looking through various standard connectors looking for something that does format: byte - I found one. In the Outlook connector.
In send email with attachment. **cackle** **evil grin**

Evil twinkle in the eye acquired - we now execute the plan

So we hack the PowerApps trigger. by using a totally unrelated connector.
I can't hold back my dislike of the PowerApps trigger. Why can't it behave more like the Flow button trigger...

The argument sendanemail_attachmentscontent is ugly. Try using Flow Studio to rename them first before you go too far. This will also make the connection tidier when you take it over to PowerApps.

Finally

PowerApps time - this is probably my simplest method.
Don't need Azure blob storage
Don't need edit json
Don't need swagger
Can have multiple arguments

5-2.png

Just need to conditionally build a strange Flow that doesn't use the outlook connector but use it to lock the PowerApps trigger

  • See the condition is always false - it doesn’t run

  • See also the Size of the create file is much larger than a broken blob string

  • We need to keep the unused Send an email action even if we don’t use it - because it locks the PowerApps trigger in place so the trigger doesn’t reset.


And there we have it - the absolutely simplest no-code solution to send a File from PowerApps to SharePoint with ease.

We lock the PowerApps trigger to format: byte by using an otherwise unused Outlook send mail connector.

Future

There are a few things Microsoft could do that will make this even easier. If they ever get around to it:

  • Allow us to define PowerApps trigger directly either by using Flow Button UI or Request schema

  • Allow SharePoint connector to accept format: byte

  • Allow PowerApps to send format: binary, right now PowerApps converts that to string, dropping the non-character bytes from the data it sends to Flow






Flow Studio subscription discount finishes very soon

Photo by Fabian Blank on Unsplash

Photo by Fabian Blank on Unsplash

This will very brief.

At the end of this weekend - Most of the Flow Studio customer’s accounts will flip from Trial to Free status. There is a current discount that will expire in less than two days.

Going forward, I intend to build out more and more features but they will all be behind the subscription. Aside from general UX changes the free tier is unlikely to receive additional features.

Subscriptions

As part of this initial roll over, I wanted to do a special discount to thank my current customers and encourage everyone to move to subscription. This discount is set at $70 / first year.

Future Discounts?

Since I believe Flow Studio to be excellent value at $10/month (or $100/year), I’m unlikely to offer any future discounts. I’m more interested in building compelling features that Makers, partners and businesses needs to be extra-successful.

I didn’t make this a big marketing fanfare, as I’m a learning startup founder and selling things is something I’m learning.

Currently status: I’m still better at making things than actually selling them.

Partnerships

Many of the current subscriptions are sold and tied to the Service User account that enterprise Flows are running under. Essentially this is a “prod” license.

We see a lot of conversations in the months ahead with Makers directly for their business, or with the consultancies that are implementing Microsoft Flow across tenants, to make sure the Flow Studio subscription is a great product both for creating better Flows as well as monitoring your running Flows.

Talk to us about these partnerships. Whether it is bulk licensing, or multiple tenant scenarios. We are very early in this stage so you get to get in the door first.

Some upcoming plans over the next two months:

  • Two major features still under development - if you are interested let me know we can talk privately about feature priorities.

  • A series of short YouTube videos that explains the hundreds of use cases that you need Flow Studio.

  • Probably a FlowStudio main site make over for users visiting and not logged in.

  • May be look for a co-founder?


Thank you

Thank you so much for your time, energy, support over the last 6 months since I pushed Flow Studio out the door. It’s a journey I’m very much enjoying, and I loved talking to you all about how to use it and why you would need it.

P.S sorry I said brief and then posted a wall of text again!

Flow Studio trial ends soon, what's next?

flow-studio-logo-90.png

This is a Flow Studio startup post. A few weeks back I locked myself in a room and added subscriptions to Flow Studio. In less than two weeks, the initial wave of free monthly trial will end. I’m writing this to be clear what we would be expecting.

Plan

  • Inspirations

  • Explain what will happen

  • Different Tiers of membership

  • v0.1.53

  • Where are we going next

  • Feedback


Inspirations

I have been listening to MS Cloud Show episode 276 where JD Trask from Raygun talks about startup with CJ and AC.

I have listened to it 5 times now.

  • (yes!) Add Subscription

  • (yes!) Do it via Strip

  • What do you mean paying is optional for your customers

  • It is a fear of rejection, it isn’t good enough and people won’t use it if it’s not free

OK. Wow. Startups are hard. Business is hard. Selling is hard. Development is actually easy, comparatively.

What will happen next?

Flow Studio subscription tiers were added on October 18 - so on November 18 - Trial status currently granted to all existing customers will flip over to Free status. Customers that joined after October 18 will have a full month of trial, so may flip after November 18.

This means these features will require a subscription

  • Edit JSON

  • Rename Actions

  • Admin

  • Get All Runs (slow) //better name pending**

  • (Bulk) trigger re-run


Different Tiers of Membership

These features will remain in a Free tier

  • Sort

  • Filter

  • Tag

  • Get Latest Runs // this pulls the latest page of 50 runs

The subscription tier is US$10 / month. There is a yearly discount at $100 / year.


New release Version 0.1.53

A lot of work has gone in to move Flow Runs into its own tab page, this gives us a lot of performance improvements to read lots of Flow Runs.

The expanding master-child grid is nice to look at but very difficult to keep the UI performance when there are a lot of Flows and Runs. There was also not a lot of space to do more work with the Flow Runs screen.


Where are we going next?

I’m hoping that customers will add weight to help me prioritize future features. Flow makers comes from all kinds of backgrounds and have very different use cases and needs.

I am adding more analytics - both for error trapping as well as feature detection, to work out what customers are using Flow Studio for. For example I know customers use sort a lot, but I don’t actually know which column they are all sorting by…

I also know customers click on /admin but I don’t know if customers actually have access to their tenant admin environment. So whether that is just exploration, or is that something that’s critical to their workload - and this affect what features I can add to admin.

Feedback

I’m always here - comment here, on Flow Studio issues or support @ flowstudio.app

These next two weeks will be a lot of thinking and planning for the next feature. Customers have the power to influence what that is.

Summary

  • Flow Studio trial wraps up on Sunday November 18 - customers will revert to Free status

  • Get All Runs and Bulk re-trigger becomes subscription feature

  • Email if you want to talk about bulk discounts for your company


/Back to work

Resolving Google DNS problems with hosting *.app from Hover on Azure

This is a quick blog post - special thanks to Simon Waight who looked into this with me and gave me some nudges towards the right direction. The solution was his suggestion too. That guy, he knows his Azure.

Problem

Okay, checklist of my problems:

  • Bought flowstudio.app domain name with Hover

  • Mapped custom domain on Azure

  • Set CNAME/A record from Hover nameserver to Azure

  • .app needs secure cert - which was bought through Azure (Go-Daddy)

  • DNS lookup is good for almost everyone

  • DNS lookup from Google DNS 8.8.8.8 fails

  • So anyone that uses Google DNS can’t see flowstudio :-(

Notes

Please understand John is a developer and not an infrastructure guru. But this was pretty interesting.

  1. .app is a secured domain

  2. Google DNS fails, because Google owns .app

  3. While most DNS servers are happy to talk to ns.hover.com to resolve my domain name to Azure, Google wants to verify the DNSSEC

  4. This fails, so Google DNS treats the DNS record as invalid, refusing to resolve FlowStudio.app

  5. This was really confusing, until I finally come across a note on Hover’s FAQ:
    https://help.hover.com/hc/en-us/articles/217281647-Understanding-and-managing-DNSSEC

Please note: Hover does not offer hosted DNSSEC DNS services using ns1/2/3.hover.com. If you require DNSSEC, you’ll need to use a third-party DNS provider that offers DNS that supports DNSSEC fully.

Solution

The fix is to create a new Azure DNS Zone, and then change the nameserver records on Hover to point to Azure DNS Servers. A/CNAME records are created on Azure DNS. This seems to have resolved the issue for everyone, especially Google DNS.

Please let me know if you have problems accessing https://FlowStudio.app

Hiding your Microsoft Flow valuables I mean variables out of sight

Photo by  Annie Spratt  on  Unsplash

Today is a quick #FlowNinja post on a strange technique.

Hiding Microsoft Flow valuables I mean variables out of sight

Yes, a very ninja technique.



This is actually an article about how to use tracked properties in the current Flow. But of course that’s the boring side to this. The fun side is how we can attach properties, like having a utility property bag and store properties as we go along!

Start with three compose (I guess we only need two really)

The expression give us the trackedProperties dictionary off the first action

actions('vars')?['trackedProperties']
// vars is the name of the first Compose action

Toggle to the … settings for the first action - that’s where different tracked properties are defined. We can use expressions if prefixed with the “@…” syntax, or define literal strings or numbers or even nested JSON objects.

What could we use Tracked Properties for?

  • Well, hide things that we don’t want to show - like the back of an envelope.

  • Unfortunately, an action can’t reference itself, so we can’t hide secrets that the action itself needs on the back of itself.

  • Tracking time between two actions - calculating the time difference between approvals can be useful.

  • https://flowstudio.app can ‘see’ tracked property values in the detailed Flow Runs - but there are no UI to display this for now. One idea is to use this to surface data within the Flow run that can be observed at the Runs level - like the Trigger URL or List Item ID of the runs, and allowing sorting on them. Powerful ideas but difficult to build an UI for. Let me know if you are keen about how this works below.