Import SaaS invoices into FreeAgent

One of the major pains when dealing with SaaS providers, is importing their invoices.

We all know the drill:

  • You log into your SaaS application
  • You find their invoice section.
  • You create a new bill in FreeAgent and copy/paste your way through the details and being sure to account for the various currencies!
  • You download the PDF form of the invoice and attach to the bill.
  • You then explain a banking transaction with this new bill.
  • Repeat over and over again for the various SaaS providers that take your money Smile

There is no standard way of getting these invoices and each provider has their own way of presenting the bills.

Painful is an understatement!.

Thankfully, Free Agent offers a very powerful (and easy to understand API) that enables developers to create applications that can interact with your account. As both a developer and a FreeAgent user, i decided to try and solve this woe.

My first idea was create an online service that could simply connect to each of my SaaS proviers. scrape the HTML and download new invoices each month. Whilst this is possible, it would mean having my service credentials sitting up on a server. Not good.

My second idea was to have a local windows service that did something similar. This approach started well until I hit Github. I use Two Factor Authentication, which I recommend, which makes automation impossible. The price of safety I suppose.

Having resigned myself to the “manual” approach, I explored the idea of using a Chome extension. This meant not having to worry about the credentials as I simply log into the providers the normal way. I also don’t have to worry about cloud security since none of my data leaves Chrome except when sent to FreeAgent (over HTTPS of course).

The idea is simple. When you visit a supported website, the extension injects an import button into the appropriate parts of the page. CLicking the button opens a dialog, prepopulated as best as possible.  You can then set the contact and category and optionally select the bank transaction you want to explain. Here is a GIF showing the flow on a dummy provider I created.

i4mFz7VxBD

This works *really* well, but it’s not 100%. Not all SaaS providers give all the information on the screen (I’ve tried parsing the PDF, but it’s too brittle and I don’t like my data going out of Chrome). Companies like Microsoft also redirect you all over the place when trying to open the invoice PDF, so sometimes you have to take actions like opening a PDF so the security cookies are set.

That said, overall, it’s made a massive difference to my accounting workflow. I can visit four or five providers in the space of 15 minutes and import 15 invoices. The rate of error is much lower since the extension is handling it for me.

At this moment in time, the extension supports:

  • Github
  • Office 365
  • Microsoft Azure
  • Taxamo
  • Hover (without PDF invoices it’s a bit disgusting so I’m looking at taking a screenshot)
  • Google Adwords
  • Forward

I want to add some memory into the extension, so it will preselect the contact and category for particular sites and I’ve a lot of JavaScript to clean up.

I think this could benefit other FreeAgent users and I’d ultimately like to release it and charge a monthly subscription. This would help me support providers beyond those I use myself.

If this workflow of invoice importing sounds familiar and is something you dread, I’d love if you could get in touch. I really like a few beta testers that could try this extension out and see if it’s a help or a hinderance. Please leave a comment or drop me an email – tomas@coldbear.co.uk

Git.exe crashing on Windows 10 Insider Build 14251

Yesterday, I upgraded my desktop to the latest Windows Insider build, 14251. I’ve successfully installed and worked on the previous Fast Ring insider builds over the past few months and I haven’t had any issues.

Unfortunately, this build was the exception. My first clue was Github for Windows telling me there was something wrong with my repository. It was unable to sync. I removed and cloned the repository again, but the error persisted. Running ‘git pull’ and ‘git push’ from the Powershell didn’t seem to do anything, which was odd. So I installed git.exe directly and the installer reported an error. Running git.exe just resulted in a “git has stopped working” message.

I decided not to waste any time on debugging this and I rolled back to the previous build, without issue. Thankfully I was back up and working within an hour.

This experience will temper me in the future and I might just drop back to the Slow Ring Smile

79p for an app? You must be joking! What a rip-off!!

After many months of simply “not getting around to it”, I finally submitted an update for my MakeMeAPass app. After I completed the submission, I decided to take a look at the reviews.

The app is sitting with a 3 star average, which isn’t bad. What surprised me was the fact that this average came from 5 star and 1 star reviews.

The 5 star reviews were positive, basically conveyed the sentiments of “good start, more to do”. Which is true. Very true.

The 1 star reviews were, as you can imagine, very negative. I came to conclusion that the negativity comes from people feeling cheated. They seem to think that 79p should get them an all-singing, all-dancing app, that’s updated every day for the rest of time.

I should have been a little clearer in the app’s description and indicated that it only supported one vendor, but, in my defence, I thought that was clear from the  screenshot I provided. Lesson learned.

Here are some of the 1star reviews, presented with a response, should the author come across them:

“0.79 for just one app. No further development. Dev’s like this are starting to give the App Store a bad name. To the dev, what is stopping you providing the ability to add all store cards & loyalty cards?”Apps take a *long* time to create and 79p represents a bargain, believe it or not.   Development was stalled for personal reasons, so please don’t criticize me for not providing updates when you’ve paid less than a cup of coffee. Please try to understand the effort that goes into something and remember that Apple take 30%, so I see 49p from each download. 49p!!  I’m one person, not a large company. I hold down a day job and tried to help people get the most out of Passbook with a simple app. I charge money to pay the hosting costs for the website.

“It says that it costs £0.79 but it took £3.16 out of my credit and the pass doesn’t work at all I WANT A REFUND!!!”Nothing to do with me. I set the price at 79p, but Apple charge you. If you want a refund, please contact them directly.

A truly awful app. Only one vendor supported and even that did not work A complete waste of money It wouldn’t let me put no stars !! – A bit harsh, but if it didn’t work, I can understand the frustration. An email would have been helpful to tell me what was wrong.

“£0.79 for one pass is a rip off!” – What gave you the impression there was more than one pass supported at launch? Why is 79p a rip-off for one pass? It took me weeks to understand the Passbook mechanism, write all the code and publish an app. For 79p, it’s actually a bargain.

“I want my money back. £0.79 just for one pass?!?!?”Same answer as above.

Apple have completely skewed people’s perceptions of software and how much it should cost. MakeMeAPass took about me about 12 hours from start to finish. I won’t mention all the work that went into the original website and the months of work that went into building PassVerse. I’ll also skip over the 15 years of experience I have in building software.

I don’t mind people feeling they aren’t getting value for money. That’s fine. It’s very personal. What I don’t like is this attitude that people have towards apps. They don’t magically come into existence. They take time, energy and perseverance to create. So the next time you’re about to rate an app with 1 star, please think about the human behind it. Get in touch with that person. Communicate your feelings towards their app. Give them a chance to respond.

And if you must slap the developer with a 1star review because you think 79p was a rip-off, please don’t do it from your £500 smartphone, whilst you’re sipping a £3 latte from Starbucks.

Apple Pay with iPhone 5 and Apple Watch

Now that Apple Pay is live in the UK, I thought it was time to try it out. Initially I thought Apple Pay was limited to the iPhone 6 and that I’d be left out in the cold (until they release a new 4″ version of the iPhone), but I was informed it works with the Apple Watch on its own.

This isn’t the most obvious thing and the option to set it up isn’t the most obvious either! I’ve taken a few screenshots to show you how far I got. Which, sadly, wasn’t very far.

I’m running iOS 9, beta 3 and Watch OS 2, beta 2.

First, open the Watch app on your iPhone.

IMG_3247

Navigate to the Wallet app (or Passbook in iOS 8)

IMG_3249

You should now see an option to Add Credit or Debit Card. When I clicked it, I simply got an error. Probably due to the fact I’m running beta software.

IMG_3250If you get it working, please let me know. I’m tempted to switch bank just to avail of this platform. Barclays, it seems, are pushing their own bPay technology. I suspect they’ll keep that for a few months and then support Apple Pay anyway.

Roomr now allows you to import room information

A common request I receive for Roomr is to add an ability to import room information without needing to use Exchange Room Lists. Room Lists aren’t the greatest of Exchange’s features. They are, as the name suggests, simply lists of Rooms. Whilst you can have multiple lists, you can’t nest them or organise them into a hierarchy of any kind. Further more, there is no UI available to create or maintain them. It’s all accomplished via PowerShell. This makes them even harder to use.

Enter the roomrconfig file. This file allows you to specify a list of rooms and folders, in a nested fashion, that you can import into Roomr. A sample file looks like this:

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration version=”1.0.0″>
<rooms>
<folder name=”10, Any Street Building”>
<folder name=”First Floor”>
<room name=”Conference Room” email=”as-1-conference@company.com” />
</folder>
<folder name=”Second Floor”>
<room name=”Conference Room” email=”as-2-conference@company.com” />
</folder>
</folder>
</rooms>
</configuration>

As you can hopefully make out, there is a folder called “10, Any Street Building”, which is broken down into two floors, each with one room. It looks something like this on an iPhone.

iOS Simulator Screen Shot 29 Jun 2015 16.05.51 iOS Simulator Screen Shot 29 Jun 2015 16.05.54 iOS Simulator Screen Shot 29 Jun 2015 16.06.00

This is a pretty simple case, but common for larger companies that are spread over multiple floors and potentially multiple buildings. This sort of nesting also makes it very easy to search based on context. The information can then be imported into Roomr, so it’s readily available from your iPhone at any time.

The config file can be deployed as an email attachment or accessed via a link. This version of Roomr, 2.9, is currently awaiting Apple to approve for Beta testing. If you’re interested in being part of the Beta program for Roomr, please get in touch!

As always, feedback is welcome!

Using Bluetooth to find Meeting Rooms

As part of my on going work with Roomr, I’ve recently released the beta of the new Roomr for iPad. This product is designed to be used as a meeting room status indicator and gives an “at-a-glance” status of a meeting room.

IMG_0002

Having an iPad represent a room actually opens up some interesting possibilities. This afternoon, I started experimenting with Bluetooth and iBeacons to see how I might enhance the iPhone version of Roomr. After about three hours, I came up with this:

IMG_3131

The iPhone performs a scan for iBeacons and retrieves the information about nearby rooms. Pretty cool. From here it’s possible to do all the usual stuff, checking the calendar, making a booking etc.

It’s all just prototyping and won’t end up in Roomr anytime soon, but it’s always good to explore the possibilities.

On a sidenote, if you’d like to be part of the Roomr for iPad beta program, please get in touch (tomas@coldbear.co.uk) and I’ll arrange access!

Roomr for Android – Rebooting

Now that Roomr for iOS is nice and stable (Full AutoDiscovery implementation, full support for global timezones), my attention is now returned to Roomr for Android.

Since I released Roomr for Android back in 2013, I’ve learned plenty by developing a client app, Call My, and by tinkering on my apps Job Tracker and Job Hunter (not related!).

Working in the new Android Studio helps, but I have a long way to go with the UI :)

IMG_3123

device-2015-05-31-121018Update (12th July) Roomr for Android is back in the Google Play store. You can get the free version here – https://play.google.com/store/apps/details?id=com.tomasmcguinness.roomrfree and the Pro version here – https://play.google.com/store/apps/details?id=com.tomasmcguinness.roomr

Feedback, as always, is welcomed!