You started a real estate photography business and are building your client base, but now you are trying to figure out how to streamline scheduling, photo delivery, payment processing and virtual tour creation. I may have a solution for you! Check out this system that I developed and see if it may be a fit for you in the coming weeks when it goes live to the public.

FULL DISCLOSURE: I developed this myself in response to other photographers wanting to know what I use for a client management system. It’s not a third party advertisement – I created it myself! Although I hope it helps many of you, it may not work for your specific situation! Read through the below post to see how the system may help save you time, energy and money.

ViewShoot is LIVE! Go Sign Up!

(signups may be stopped and/or limited at any time)

Be Notified

Before we go into the details, I want to give you a chance to quick sign up for a newsletter to be notified ONLY about the system. I created a separate list as the email list here on is only for new blog posts. I only want to send info to those genuinely interested, so feel free to sign up below to stay up-to-date. 


When I started my real estate photography business in 2010 the very first thing I did was build a website with a client backend to handle shoot scheduling and payments. With a Bachelor’s in Computer Science I have always been interested in Web Development and I wanted my business to look as professional as possible.

I was talking to another real estate photographer online a couple of years ago and I explained how I handle payments and photo delivery. I told him how my backend system shows watermarked photos to clients, but they don’t get the photos until payment is complete. And because everything at the time was hooked up via PayPal and automated, my involvement in the process was over after I uploaded the photos and marked the shoot as “ready”.

I didn’t require payment up front from clients which let them feel more comfortable using me (for the first time especially), and they were able to see the photos prior to making payment. It saved me time communicating back/forth because it was all automated. Once the client paid through PayPal, the system would see the payment and automatically release the non-watermarked photos to the client.

The problem? That old system was hard-coded specifically for my business, Unique Exposure Photography. I couldn’t share it with other real estate photographers. In addition, the design was old so it wasn’t mobile-friendly, it used PayPal which I didn’t like, and the virtual tours were created off-site and a pain to handle. So I set out to change that.

Save. Me. Time.

I needed a system for one reason – save me time. As a one-man shop, I don’t have time to chase after clients for payments. But one of the bigger problems I had with my old system was photo delivery and all of the steps I had to take to get a shoot uploaded. On my local system, I exported Thumbnails, Proofs (watermarked), Small, Full and Tour size photos…so 5 different batches of photos for one shoot. I zipped up the small and full sizes and uploaded them to my web server. I zipped up the proofs and thumbnails and uploaded to my web server via my client backend. I created a tour slideshow in a 3rd party app and uploaded the tour versions to it. It was a huge waste of time and resources. Fast forward to today and all I do is export full size photos, upload to the system, and I’m good to go. But more on that in a bit. 🙂

The CMS for Real Estate Photographers

I created ViewShoot (with the help of two super awesome dudes) to solve my problems and make my life easier, and I’m hoping that cascades down to you and helps you all run your businesses more efficiently. Here are the main goals I had when developing the system:

  • Mobile Friendly – from the client view, to payments, to virtual tours…it had to be mobile friendly.
  • Easy Scheduling – easy scheduling, including mobile friendly form field when I’m on the go, and just like my previous system I needed to have client notification emails automated so Realtors knew when shoots were scheduled/ready.
  • Secure Payments – accept payments from clients via credit card but doing it legit – not with PayPal. So many clients would complain to me about PayPal. I LOVED PayPal and have no complaints, but when clients don’t like it for one reason or another it’s hard to get them to put their credit card info in the site!
  • Offline Payments – I get paid via check/cash, or I’ll occasionally swipe a credit card on-site. The system needed to be able to let me mark a shoot as paid via an offline payment if the client isn’t going to be entering their card info directly into the site.
  • Fast/Easy Tour Creation – tours should be created automatically without requiring me to touch anything (if anything at all). My previous system had tours on a 3rd party platform so I had to upload photos to multiple sites and it was a pain.
  • Video Support in Tour Links – let me add vimeo/youtube/wellcomemat links so video tours show up in the Tour Links alongside the photos.
  • Automated Package Creation – bundle up Full and Small size photos into separate zip files, automatically. Don’t make me upload Full, Small, Proof, Thumb…etc. sizes. Just let me upload the full size photos and make the system handle all of the rest so it’s quick and easy, saving me loads of time.
  • Partial Photo Delivery – allow me to select only a subset of photos that I upload to be available for clients to download. I have a few design clients and they pay per photo. On-site I take more photos than they end up receiving, so I wanted a way for them to view the photos and make a selection, and then have the system only deliver certain photos to them in the download packages.
  • Miscellaneous Link Attachment – Sometimes I upload alternate files to dropbox, or I need to share a YouTube link with a client, etc. I wanted a way to attach these links to the photo shoot so the client would have access to them.
  • Unlimited Space – my previous system relied on limited server hard drive space so I had to archive my photoshoots every month to make room for new shoots. The new system needed to allow me to keep the shoots accessible to clients for as long as I wanted – perhaps forever.
  • Ghost Users – not the best name, but the only thing I can think of to call someone who I attach to the shoot who isn’t the client, but they are blind copied on the photo delivery. I have stagers who refer work to me and I let them use the photos to market their own businesses because it in turn brings me more business. I wanted the system to be able to send them the photos without me having to forward the emails to them.
  • Unique URL – each photography company needs their own URL to give their clients access to the system. Upon signup and creation of an account, the photographer selects/submits a custom subdomain URL to access ViewShoot.

Sneak Peek

Since July of 2015 I have had 100% of my clients on ViewShoot. I have been going through and adding things that I see fit and making bug fixes along the way. I built it to fit my needs first and foremost, but I now want to hear from other real estate photographers to see where it can improve. Ready to take a look? Let’s see what we have so far from the viewpoint of the photographer (the client will only see their shoots, including limited view of options, settings, etc).

View Your Shoots

When you login, you’ll be presented with your scheduled and completed photo shoots. There are filtering options at the top to make your life easier when you need to find a specific shoot by a client, or need to see what shoots have yet to be paid for.

In the blue boxes you’ll see your gross revenue for the current year, quarter, month and week. I always wait until the end of the year to do my accounting so I found it very interesting to see what my current yearly revenue was and breaking it down into month/week. It’s simply informative based off the shoots you have scheduled in the system, and it can be disabled under your options.

Your scheduled shoots are listed in a table view showing the date/time of the shoot, address, client and then a couple of quick action buttons for payment or deletion.

Completed shoots show in a thumbnail grid format. The thumbnail that represents the shoot is the first photo that was uploaded to the shoot. You still see the date, address, client and pay button. For the client view, they see the date of the shoot but they don’t see their name on top of the thumbnail. They see the pay button as it gives them the opportunity to quickly pay before going any further.

Schedule a Shoot

Before we look at a shoot, let’s schedule one into the system. You schedule a shoot by going to the menu item Shoots->Schedule Shoot.

It’s pretty self explanatory, but all of the main details for the photo shoot are provided in the scheduling form. You input the client’s name and quote (and you can set a tax rate under your settings if you collect tax), and choose when/where the shoot is going to be. “Enable VS Naming?” is an option that when on, ViewShoot will rename all of your photo files based off the address of the property. If you want your filenames to remain untouched, you would turn this option off.

The date and time fields are handled with overlays that work great on desktop and on mobile.

Once we hit the schedule button the client will be sent an automated email notification with the pertinent shoot information, and we can go back to our ViewShoots page (Shoots->View Shoots) and find it under the Scheduled list. Clicking on it will take us into the details page for that specific shoot.

Uploading Photos

Let’s get some photos uploaded into our shoot for our client to view! At the top of the shoot page you’ll see a Shoot Settings heading, with four tabs that can be opened up (Scheduling/Photos/Tour/Admin). The Scheduling tab allows us to make adjustments to our schedule, quote, address, etc. We’ll click on the Photos tab to see the upload box, and simply drag/drop our full-size photos into the box to begin the upload process.

As you upload photos the system will let you know what file it is currently on both in the yellow information box showing the filename, and also as an overlay progress bar over the current thumbnail. Once all photos have been uploaded, the page will refresh automatically to update the shoot page with the new photos in a grid thumbnail view.

You’ll notice a couple of different things in this view.

  1. The photos are numbered so if a client needs to reference a specific photo they can tell you which number.
  2. Each photo has a green globe and cloud icon. The green globe means that photo is visible in the tour links. The green cloud means that photo is available in the download packages. Clicking the icons will disable the photos in their respective views.
  3. The first photo defaults to being the header photo in the Virtual Tour links. You can adjust where the focal point is for that image by clicking on the link in the green bar (more on that later).
  4. The bottom right of each photo contains a PROOF ribbon. This is the watermark so clients don’t save/copy the photos. If they do, we’ll know it because we’ll see that proof ribbon used in the photo.

Clicking on one of the photos pulls it up for a bigger view on the page as expected, and the client can cycle through all of their photos with the navigation arrows.

Creating Tour Links

Tour links are created automatically by default – you don’t have to do anything! But there are things we can do to customize the view. Besides disabling certain photos from the tour view by clicking on the green globe icons, we can add Realtor information to the branded version of our tour link. We do this by clicking on the Tour tab at the top, and then either selecting a pre-existing Realtor, or by entering a new one.

And just like that, we have a tour created. (We will talk about the video portion below.)

View the Virtual Tour

About the Tour

Simplicity. That’s it. My previous tour had a Ken Burns effect and bricks/shingles looked like absolute garbage while the photo was moving. I also currently don’t have descriptions, square footage, pricing, beds/baths, etc. There is the possibility that will be added in the future, but my goal is to give clients a tour link that buyers can click on to view the photos quickly without any nonsense. There are many tour companies where you can have a tour created with school data, walking scores, etc. As a recent buyer of a house, I didn’t care about that! And I surely didn’t care about the description of the immaculate home and to-die-for floors. I can see it all myself in the photos!

The goal was to not junk it up, and that includes sound. In the 5+ years I have been running my real estate photography business I have been asked less than five times for music in my tour links. This falls back again on my experience. If I’m working my day job and I’m looking up houses on the job (when I’m not supposed to be), I don’t want music to come flying out of my speakers. And if the music isn’t my taste I’m going to not want it on anyway, so I don’t include the option to add music to tours.

Video is a completely different animal. If somebody hits play on a video, they expect sound. So I do put sound in my walk-through video tours and that will play when expected. But for the base tour page, does anybody else agree with me that we need to get away from putting cheesy music in the background for no reason whatsoever?!

Videos in Tour Links

Speaking of video, let’s look at adding video to tour links. ViewShoot will not host video as there are other extremely cost-effective sites that can handle the bandwidth and stream far better than ViewShoot. I host all of my tours on vimeo. I upload a branded version that’s public on vimeo, and then I upload an MLS version that doesn’t have agent branding. For the MLS version, I set it to “hide from” in the settings in vimeo as I don’t need people to find that version. In ViewShoot, I copy/paste the embed links for the vimeo tours under the Tour tab.

Extra Functionality

Under the Admin tab, there are extra functions we can take advantage of. For example, let’s say we want the agent to have access to a YouTube video that we uploaded, and we also want to send them a formatted video of the video. We can click on the Admin tab and use the Add Link section to manually add links to our other content pieces. The end result is a button for them to download the additional media:

Other things you’ll find under the Admin tab:

  • Ghost Users – to blind copy other user accounts when the photos are delivered, so they can have copies.
  • Summary Email Options – Disable the summary email completely, which is the email that gets sent to clients with the download links once the photo shoot is finalized and payment is complete. Or you can disable the zip download links from the summary email if you don’t want the client to have access to them via the email.
  • Offline Payment – Mark the shoot as paid either by Square, PayPal, Cash or Check, if you use another form of payment processing besides ViewShoot itself.
  • Send Email Notifications – Manually trigger various emails throughout the process. Did a client say they didn’t receive the payment receipt? Resend it by selecting it from the drop-down.
  • Shoot Options – Finalize a shoot (mark it as complete and create the download packages), delete the photos from a shoot so you can start over, or delete a shoot completely – all selectable options under the drop-down.


Clients can pay via offline payments as mentioned above, or they can pay directly through ViewShoot with a secure credit card transaction. ViewShoot utilizes Stripe to handle payments – go check them out if you haven’t heard of them. The awesome part of using Stripe is credit cards never get saved/sent to ViewShoot. They go directly to Stripe! And you will create a Stripe account if you choose to accept payments in ViewShoot so the funds will go directly to you, bypassing ViewShoot all together.

Here’s what it looks like when clients click the Pay button (and it behaves the same with mobile as well, super slick):

By default, the Remember Me checkbox is not checked. But if a client wishes, they can click that option and enter their cell phone number. They’ll receive a text message for verification, and future payments can be made by just entering in their email address so they don’t have to enter their card.

You’ll also notice in the top right that there’s a yellow Test icon. ViewShoot has the ability to store your test and live keys from Stripe so you can use ViewShoot in test mode without actually completing any credit card transactions. Great for the first couple of shoots that you just want to test with yourself to see how things work, without actually billing a credit card but still completing the payment process on the site.

As mentioned earlier, one of the important pieces of ViewShoot is the ability to show photos to clients but not deliver them until payment is complete. Once you finalize a shoot and create download packages, they aren’t available to clients until payment is complete. They’ll see their proof images, but the images will be held hostage until payment is complete. This has saved me a ton of time and energy because I don’t have to chase clients down for payment. Want the photos? Pay up!

Site Defaults

The last piece I want to go over is the Site Defaults section of ViewShoot. Here you can set company defaults that will change how the system behaves.

The basic settings allow you to change the company name/phone/email address that are utilizes throughout the site both for online display and for email purposes. You can also create an email signature that will be attached to all email notifications, including the ability to utilize HTML to add company logos, social media icons, etc.

You have a couple of options for how the system presents itself during the scheduling process. You can choose a default state so it’s already set when you go to schedule. You can set a default quote if you book the majority of your shoots at a specific price, and you can set the tax percentage. The scheduling interval determines how the time is displayed when you pull up the scrolling list – whether it’s in increments of 10 minutes, 15, 30…etc.

For image handling, you are able to select the width of the small/compressed photo size that ViewShoot creates for you as a downloadable package alongside the Full images, and you also have the ability to default VS Naming to on, meaning ViewShoot will rename the photo files for you based off the address that was entered during scheduling.

Lastly, ViewShoot provides the boxes to input the necessary Stripe data in order to accept payments. The Test Mode box tells ViewShoot to run in test mode and utilize the Test Keys, so credit card transactions don’t actually take place and process through Stripe.

What’s Next?

Somehow, some way, I had quite a few people sign up for the ViewShoot Email List over time. They were sent an early beta test invite to get into the system to iron a few things out. After they have used the system for a while and provided feedback, ViewShoot will be opening its doors to the public – you – the real estate photographer. Although the system is expected to handle numerous photographer companies, the current implementation was developed to help the solo photographer who is running their business on their own. In the future if the need exists, we will look into adding the ability to assign different photographers to shoots and any other features that would benefit companies with multiple photographers on staff.

For now, I recommend if you are interested, that you sign up for the ViewShoot Email List to stay up-to-date.

ViewShoot is LIVE! Go Sign Up!

(signups may be stopped and/or limited at any time)


Post a comment below with any questions you may have – I’ll be happy to answer as best I can!

What I’ve Been Up To

Downloadable PDF

Want to peek into my life as a real estate photographer? Enter your email below to receive a PDF of a list of things I’ve done since the previous blog post. You’ll also be added to my mailing list where I send out a short email when a blog post goes live and include the list of things I’ve been up to directly in the email.