Archives For Announcements

This post was first written for my website – you can find the original post here.

We’ve talked about open-sourcing some of our tools for a while, but talking and doing are different things. Having a small team developing an awesome service means we’re constantly busy and behind on many of our tasks, making it difficult to dedicate time for things that seem “less valuable”. As a result, I decided to set aside some time in the last few weeks to do this project and just get it done.

Here are few scattered thoughts around open sourcing our Segmented Control widget.

Where To Start

Creating an open source project can be very overwhelming, or at least it was for me.

You start worrying about if people will like it, use it, improve it; whether the company will appreciate it, support it, and develop it. Then you bring other projects into your thoughts and how they have beautiful landing pages and thorough documentation, an incredible automated test suite, contributors, and a community. You then wonder whether your project will be good enough to be open source and that doubt translates into postponing or even dropping the whole thing.

Needless to say this train of thought takes you nowhere.

With that in mind, we decided to start small. Like really small. I took it upon myself to prepare for open source primetime a jQuery UI widget that we’ve been using on Expensify’s web application for a year and change that is very small, very simple, very clean, and works very well.

And So It Began

As previously mentioned, the project is called Segmented Control. It is a UI control for the web that works similar to radio buttons in the sense that it allows users to select one value out of a (usually small) set of values. A project page is worth a thousand words, check it out.

I started with a quick cleanup of the code that included fixing some whitespace, removing underscore as a dependency, and adding some validation.

Then came the tests, and with it came setting up the repo with the JS dependencies, researching mocha, chai, npm, and bower.

I decided I didn’t want to run the test in the browser, which unveiled the trickiest part with relation to the automated tests: how to write tests for a jQuery UI widget that can run using node. Luckily, I stumbled into this Protip on Coderwall and learned about how jsdom could be used to create the widget, emulate clicks on the control, etc.

Finally, I created the project page, pushed it to Github and released it to the world.

Before You Go

This was a very interesting exercise, regardless of how small the project was. I found many challenges along the way, one of which was documenting the process in a blog post. I hope this first small step will pave the way for more involvement from Expensify in the open source community, and encourage a wider group of candidates to join our team.

I’d like to encourage everyone that has thought about open sourcing a piece of software, but found it overwhelming, to start, even with a very small project like ours.

Lastly, I’d also like to give a quick shout-out to Giorgio, the original developer of the widget.

Interested in learning more about us or getting involved in the open source project? Drop us a line!

It’s that time of year again – the team is working hard from Portugal on the offshore and if history has taught us anything, that means it’s time for the design department to bring you a lil’ visual refresh. This time around, we’ve tackled the way we display tables, including a revamped Expenses and Reports list, and we’ve given our Approval Mode selector a complete makeover too.

Old Expenses Table

Out with the old…

New Expenses Table

…and in with dat new new.

Let’s Start With The Tables

We’ve made some pretty significant strides in the past couple of years in terms of our UI, but the expenses list and reports list haven’t really changed much. We wanted to not only make the tables easier to read and look at for users, but also to make them easier to style and control for our engineers as well. Rather than bloating our base table class, we’ve now got a whole slew of helper classes to keep our CSS much cleaner. Semantically, it’s now easier for engineers to pass these helper classes through to the table object to add certain effects to the table such as draggability, hoverability, selectability, and more.

The reports list got a lot of love too, making it easier for admins and employees alike to scan through reports regardless of the length of report titles, email addresses, and policy names. Colored borders on each row help communicate the report status, and new report type icons make it clear that you are looking at a report or an invoice (and down the road – a trip and more!).

New reports list.

The new reports list.

New report table.

Tables in reports need love, too.

What Up, New Approval Mode Selector

From our support agents, we realized that a number of users were confused about how to change the default Approval Mode in a policy. It wasn’t obvious that there were a number of options to choose from, or even how to choose another option in the first place. To solve this, we made a much more visual selector that clearly shows which option you have enabled, and which options you have to choose from.

Old approval mode selector

How do I change approval modes…?

New approval mode selector

There we go.

We hope you like the new changes, and we’re always open to hearing your feedback! If improving a product that millions of people use to make their life easier is your cup of tea, then head over to our jobs page because we’re hiring too.

Submit to Concur

Submit to Concur, easy as 1, 2, 3!

You might have read the news that our friends at Concur have just sold to SAP, a global enterprise powerhouse.

This is great for nearly everybody: SAP, Concur shareholders, and especially for us.  As for Concur customers… well the future just got a bit cloudier (and not in a good way).  They probably feel locked into a long-term contract with a company whose focus has suddenly shifted away from their needs, and I’m sure that doesn’t feel great.  Expensify exists to help people feel great about their expense reports, so in light of the news we’re offering a very special deal:

If you’re currently a Concur customer, switch to Expensify now and PAY NOTHING for the duration of your Concur contract.

If that’s one year, ten years, or a thousand years — no problem.  There’s no need to stick it out to the end: you can switch today without stressing over the sunk cost.  If you or anyone you know are using Concur and feeling uncertain about the future, please write to concur@expensify.com and we’ll get you set up.

Alternatively, if you’re convinced the company will never switch, we whipped up something this weekend for you too: we call it “Submit to Concur.”  To enable, just sign in to https://expensify.com, click Settings > Connections > Concur, and enter your Concur username/password.  Create your next report using Expensify as normal— including our cutting-edge mobile app and industry-first SmartScan technology — and when you submit we’ll connect via the Concur API, upload the receipts, and create the report for you.  So whether you’re in charge or not, there’s no reason to suffer through to the bitter end: you can make the switch to Expensify by yourself, today, without waiting for the rest of your company.

Regardless, it’s a great new day for the industry.  Congratulations to Steve Singh at Concur; it was a fantastic run.  We’ll take it from here!

This post was originally sent out as a newsletter to our users. To sign up for Expensify, visit http://use.expensify.com/. Questions, comments, concerns? Feel free to drop us a note in the comments section below!

Expensify Partners with Uber to Bring SmartRides to Business Travelers Worldwide

Traveling Can Suck. SmartRides Don’t.

Traveling can be brutal. Delayed flights, trying to find a cab, fumbling through your phone for your hotel address — it’s all a huge headache. Those headaches are now a thing of the past because Expensify has teamed up with Uber to trade your boarding pass for hotel key with a single tap.

 

So What is It?

Expensify already provides live flight updates for any reservation forwarded to receipts@expensify.com, and creates your expense report along the way. We call this feature “Trips”, and we’re taking it one step further: starting today the Expensify app will detect when you land and have an Uber driver waiting outside baggage claim to escort you straight to your hotel — all prearranged from your itinerary without you even needing to look up the address.  We call it “SmartRides”; the VIP travel experience for everyone, brought to you by Uber and Expensify. 

 

Expensify Uber

optionsinapp

 

Think This is Magical? We’re Just Getting Started.

As great as SmartRides is, it’s just the beginning of our partnership with Uber. Next up is an expansion of SmartRides to take you to the airport at the start of the trip, and back home after. After that, we’re launching our integration with Uber for Business, which allows companies to centrally pay for their employees’ Uber trips and automatically sync up the receipts. After that we’ll take Realtime Expense Reports out of beta such that expense reports are a thing of the past once and for all, and then… well, you’ll need to just wait and see.

We didn’t just set out to make “expense reports that don’t suck”; we’re aiming for a total reinvention of the expense management space. Call it ambient computing, call it crazy, call it whatever you want.  But we’re doing it, sooner than you might expect, and it’s going to be awesome.

Have you tried SmartRides yet? Let us know what you think!

 

Download the Expensify App and start enjoying SmartRides here:

Download Expensify on the App Store  Download Expensify on Google Play

While thinking of fun, creative projects that would also WOW our customers, software engineer Carlos had the AMAZING idea of integrating Expensify with Silicon Valley’s newest darling, Yo.

The 411:

To set it up, go to Settings > Connections.

Scroll down until you see the Yo integration, and enter your username before pressing ‘Connect’.

Expensify & YO! integration

Voila, you’re all set!

After connecting, you’ll get Yo’d as soon as you get reimbursed.

Why Integrate with Yo?

People want to be notified when they’re reimbursed. Yo is a simple communication system that works perfectly in context. Once Yo opened their API, an Expensify integration was a no-brainer.

Have a question? Email us at help@expensify.com or give us a shout-out on Twitter!

In previous Expensify blog posts you may have heard us refer to WOW Fridays. Every Friday at Expensify we allow our engineers the freedom to work on projects of their choosing, that aren’t necessarily part of our immediate product roadmap. We do this in order to allow them to exercise their creative freedom with the benefit that we end up with some really cool additions to the product. Well, the latest product of WOW Fridays is here: Report Comments! Major props to our engineer Florent for whipping this up.

Comment directly on expense reports

When you scroll to the bottom of an expense report in Expensify, you will now notice that the “Report History” section has been re-branded as “Report History & Comments”. In this section, anyone that can view the expense report can comment on it, without having to leave Expensify.

Report History and Comments

 

Email notifications

Whenever someone comments on a report, the people that are shared on the report will get an email notification along with the comment. This makes it easy and efficient for employees, approvers, and admins to communicate about expenses.

Report Comments Email

Hopefully, this helps make your expense reporting process suck even less. As always, let us know what you think!

As we continue towards our major realtime expense reporting push, we are continuing to streamline the Expensify product. This started with simplifying our pricing structure and now involves changing the way report submission and approval works for those people using Expensify outside of an expense policy. When users submit reports outside of an expense policy, the reports are now moved to the “closed” state and shared with the person the report was submitted to. The recipient of the report still has the ability to approve the report by moving the report to a policy.

What This Means for Submitters

When you submit an expense report, the report’s status will change from “open” to “closed”.

Screen Shot 2014-07-25 at 1.40.59 PM

This report will be shared with the person you submitted the report to. As usual, they will get an email letting them know you have submitted this report to them. The Report History will reflect that the report was closed and that it was submitted to your desired recipient.

Screen Shot 2014-07-25 at 1.42.57 PM

What This Means for Approvers

Approvers who are not members of an expense policy will continue to have the ability to view the reports that are submitted to them within Expensify. If you are a member of an expense policy, you will be able to move the expense report into that policy and approve it.

Screen Shot 2014-07-25 at 1.45.23 PM

If you don’t yet have an expense policy and you would like to approve the report, you will be able to create a new policy directly from the approve dialogue.

Screen Shot 2014-07-25 at 1.47.02 PM

Individuals using our product for free have always been Expensify’s base and we will always support them. However, as we have grown and developed as a company, it has been necessary to continuously rethink what features apply to our individual user and company users exclusively, how they interact, and the simplest way to present them. To this extent, we’d love your feedback! Please give us a shout at help@expensify.com and we’ll be glad to answer any questions you might have about this update.