PhotoCUE: A Photobooth PowerApp and Flow


Before I was a teacher, I had done events photography. Besides the aesthetic aspect, the technical aspects of the art appealed to me. I put a lot of time in thinking improving the efficiency of my process. I was invested in the idea that an event is only as relevant as it is seen; so photos and other media content should be available right away for audience engagement.

Social media buzz is driven by the desire for instant gratification. People want to memorialize their experience of an event immediately–for better or for worse. Love it or hate it, if content for an event is not pushed out right away, the event loses much of its momentum and clout.

Yet, having become a teacher, I had put aside all these thoughts about photography–until now.


At the 2018 CUE Conference in Palm Springs, I had picked up my camera for one more event: the Orange County CUE Affiliate Mixer. The OCCUE Board was open to the idea of having photography as an activity during the mixer. It would be a neat way to have fun, do what I love, and be help out my local affiliate.

I originally planned to do my typical mobile studio setup. That would have been the safe route. But I was at a tech conference, so I challenged myself to try something new.

I wanted to make a photobooth.

My idea was simple: email a photo taken by my DSLR, but automate it. The sooner people have the photos, the happier they are.

Rather than being the one to take the photos myself, I could redefine my role so that I might be able to help out the affiliate in other ways. There were only a few hands on deck, so it was a good goal.


My solution consisted of:

  • A two-light setup with a fashion-grey backdrop
  • A DSLR tethered to my Surface Book
  • A Surface Dial as a button for starting the photo sequence
  • digiCamControl for watermarking incoming photos
  • Microsoft Flow for sending emails with photo attachments

The photobooth “flow” can be described in these steps:

  1. Subject inputs email into a form when they are at the front of the line.
  2. Subject selects props then steps into photobooth.
  3. Subject clicks Surface Dial and poses for 3 photos.
  4. Photo is copied from camera to a folder on the computer.
  5. DigiCamControl applies an overlay on each image that enters the folder.
  6. The folder is synced with the cloud.
  7. *Microsoft Flow detects a new file in the folder.
  8. *Flow looks up the email of the subject.
  9. *Flow emails the photo as an attachment.

* indicates a step in Microsoft Flow. The rest are physical steps or part of the existing photography process.

Photography Setup

The video below is a hyperlapse of the 20 minutes I took to setup the photobooth alone.  (Caution: the camera turns a lot since it was programmed to follow me.)

Tethering Setup

Tether Tools has a thorough blog post about software that is available for tethering your camera to your computer. I chose digiCamControl for many reasons:

  • Price: I wanted it to be free.
    SPOILER: I liked digiCamControl so much, I donated anyway.
  • Timelapse: I wanted software that could easily program the number of shots and the time between each shot
  • Keyboard shortcuts: I wanted to program keyboard shortcuts so I could allow the camera to be triggered by my Surface Dial.
  • Overlay: I wanted to overlay/watermark an image on top of any photo that is imported into the computer. In this case, I wanted a small banner with event information.
  • Dark theme: dark theme is best theme.

Installation is easy–there is plenty of documentation on the website about getting started. I’ll dive into the specific steps I took to make this process possible.

In the right-hand panel under “Session,” choose or create a new folder inside a cloud-connected service* of your choice: OneDrive, Dropbox. Files in this folder will be automatically uploaded to the internet. Our Flow is going to be detecting these new files later.

*Note: Google Drive is an available connector in Flow, but it does not yet have a trigger that can detect new files. I’ll update this space once this changes.

At the bottom left-hand corner below the battery meter, once you have connected your camera, change the “Transfer” setting to your choice. I like to have photos saved onto the camera’s memory card as well as exported to the computer (Option 3).

Timelapse Mode

Click the clapperboard icon at the top–that’s the button for Timelapse. Set it to “Start now” so that it begins when you manually trigger it. We will configure a shortcut in a later step.

I like to have a 2s interval between shots–it’s not too short, not too long. It gives time for strobes to refresh.

Stop the timelapse at a multiple of your interval. So if my interval is 2s and I want 3 photos taken, I would set the “stop-at” time to 6s because 2×3=6. Don’t worry–that’s all the math we’ll be doing today. 🤓

Keyboard Shortcuts

Go to: File > Settings > Triggers

Scroll down to the bottom and locate “TimeLapseStart.” Choose a keyboard button combination of your choice. Check the box for “Global” so that you could trigger the photo sequence when any window is actively selected, not just digiCamControl.

Go to: Settings > Devices > Wheel

Below I’m programming my Surface Dial to the same keyboard button combination that I had set in digiCamControl. If you don’t use a Surface Dial, you would perform this step for whatever device you want to use as a button for the photobooth within its own software.

digicamcontrol - wheel


In Photoshop, I created a document with the same dimensions as the photos that come from my camera. Since I would be emailing photos, I wanted the smallest file size so that it is sent faster. I went with 3680x2456px, the smallest resolution on my D800.

I designed a banner that showed information about the event: the name, the date, and a logo. I drew a rectangle with the marquee tool. Inside, I used the gradient tool to drag a black gradient to make the text stand out more.

I save the file as a PNG so that it maintains transparency.

photoshop - gradient

In digiCamControl, the right-hand panel has a section for “Auto Export Plugins.” Expand it and you’ll see the button “+ Add plugin.” Select it, then select “Transform.” A small window pops up.

Navigate to the tab for “Transform plugins.” There is another “+ Add plugin” button in the left side. Set it to “Overlay.” On the right side, browse for the PNG file you made in Photoshop.

Photos that are imported from the camera into the folder will automatically be overlaid with the file you specify. Please note that the photo is permanently modified.

Set digiCamControl to fullscreen mode for a good experience. For me, I also reverse my Surface Book screen so that users only interact with the fullscreen photostream and my Surface Dial.

The tethering is ready!

The Workflow

The last leg of the process is sending the email. I had a few schematics for this:

  • Duplicate the photos taken into a SQL table, and then send the email from an app.
  • Send one email for each photo that comes in.
  • Manually email photos.

The third option was out of the question–it would work 100%, but it would require someone to do the work, and it would delay the process. I tried the first method, but it took too long for photos to be detected inside the app. So I went with the second option.

The Form

I created a simple form for collecting email addresses. You could use Google Forms, Microsoft Forms, or any other form service that is public.

The form outputted results to Google Sheets. I added columns for “Completed” and “Active” so I could flag who was done with the photobooth, who had not been queued yet, and who was actively receiving the next emailed photos.

Note: If you use Microsoft Forms, you could retrieve results from the Form without needing a spreadsheet–I’ll have to blog about that in the future.

The PowerApp

I created an app as a tool for selecting which email(s) would receive the next batch of photos. It’s a quick and easy way to choose who is receiving photos. It does require a person to use the app, and it could easily just be the photo subjects themselves. It all comes down to how you want to structure the flow of your photobooth. As a bonus, I made it possible for users to submit their email within the app as well.

PhotoCUE was born!

flow - photocue 2

Of course I’m going to give you a sample app so you could remix it:!AvtvG5BA8E3vj7YjZ6PpsHq_j9-6wQ

Tweet to @8bitclassroom and use #PowerAppsRemix when you make it better 🤓

Note: I’ll update the msapp file with some commenting code soon, but I wanted to let you have it right away.

The Flow

My flow is simply steps 7-9 from the Overview:

  • Microsoft Flow detects a new file in the folder.
  • Flow looks up the email of the subject.
  • Flow emails the photo as an attachment.

I’ll explain each step and some of the extras I put in there to make sure things are working.

    1. OneDrive – “When a file is created”
      Choose the target folder that you had selected in digiCamControl.
    2. Wunderlist – “Create a task” (optional)
      I added this extra step so that my phone would receive a notification and an actual record that the flow had run. I specified the filename and timestamp.
      Alternatively, you could send yourself a push notification to the Flow app.
    3. Google Sheets – “Initialize variable”, “Get rows,” “Filter array”
      The big idea is to filter the rows from the Google Sheets where people fill out their email. Return only the ones where the “Active” column is true.Normally one person is receiving the photos to their email, but you could actually send the same photo to multiple email addresses as long as they are marked “active.”

      This set of steps was tricky for me. I’m still new to writing filters in Flow. I initialized a variable that I set to “true” so that it could be used in the filter step. I think you could skip this step altogether, but this worked for me.

    4. Gmail – “Send email”
      An email is sent for each record that is “Active.” So this part takes place in an “Apply to each” block. I configured the subject and message in Flow. You could take this further and have it greet the recipient by name.The details for the attachment are based on the new file that was detected. It’s just a matter of selecting the right item from the dynamic content.

So how does it all work together?

User inputs their email -> A photo is taken -> It’s sent to a computer and OneDrive ->
The file is detected online in OneDrive -> It is emailed to the email selected in the app

It worked!

Next Steps

There are many ways to improve upon this photobooth process. For instance, I set out to have the photobooth self-sustainable; I didn’t quite get there, but I was closer than if I were to do it all myself. I invite you to remix the flow and app to make it work for you.

Can you automate the selection of an email recipient? Can you replicate this by substituting Microsoft Forms, Adobe Lightroom, Dropbox, Canon, etc.? Do it! Share it!

I hope you enjoyed learning about this as much as I enjoyed making it possible!

– Mr. Dang

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s