Inspiration
I run an online marketing agency that uses a lot of Xero repeating invoices. We love Xero repeating invoices, but there is no report in Xero that shows our upcoming income, and our expected repeating income for the next 12 months. We had a big complicated spreadsheet that had all the invoice amounts and frequencies from our repeating invoices which projected out our upcoming repeating income. But the spreadsheet was constantly getting out of date because every change in Xero also had to be changed in the spreadsheet. We looked online for solutions and found a number of other people desiring the same type of report.
What it does
With DonkeyBean you simply connect to your Xero account and DonkeyBean looks at your repeating invoices and instantly creates projections for your next 12 months. Users see the total income for the next few months, plus a full breakdown per account and per month for the next 12 months. Users can click on any month and account to see exactly which invoices and line items make up that amount. They also see totals per account for the next 12 months, and for the current financial year. Any invoices that are expiring in the next 12 months are highlighted so that users can see these well in advance. The system also enables users to search and filter their line items from all repeating invoices on a single screen. The system handles Xero multi-currency accounts too. Once an account is connected to Xero a daily sync happens automatically where DonkeyBean pulls in the up-to-date repeating invoices and re-crunches the projections for the next 12 months.
How I built it
We built it in PHP and MySQL, hosted in AWS.
Challenges I ran into
We had to learn a lot to build this. We hadn't hosted in AWS before, and are using Elastic Beanstalk, so had some learning curves there. Because there is an intensive amount of server work to sync to Xero and then crunch the projections we learned about creating queuing systems - we have used Redis for the queuing system using PHP Resque.
One of the most challenging things to solve is that the Xero API doesn't provide a Xero repeating invoice ID when retrieving sales invoices. (The repeating invoice ID is only available when retrieving repeating invoices). This meant that we have no way of querying when repeating invoices have run in the past. Also, when a repeating invoice amount or date is updated by a user in Xero, Xero changes the recorded start date of the repeating invoice that the API provides. Our system not only shows a forecast of repeating invoices income, it also shows users what has happened historically. So these two factors in the API meant that we couldn't do this automatically and had to work out a solution. We developed an approach where the system projects the past as accurately as it can from the available data, and then going forward it keeps updating the future projection each day, and keeps track of each day's actual repeating invoices so that the historical record becomes more accurate as time progresses.
Accomplishments that I'm proud of
We're proud to have a system that is fully automated for Xero customers to project their recurring revenue. We're still in the early phases of growth but have paying customers from around the world (including USA, UK, NZ, Australia). We were listed in the Xero marketplace on 21st August 2017, which felt like a big accomplishment!
What I learned
That software is a lot more intense to develop than websites! We used our web development skills to build it and knew we would have a big learning curve, but still underestimated how big the learning curve would be!
What's next for DonkeyBean
We're getting some great feature requests from our users, and have a roadmap of what we're working on. We want to build a platform that gives Xero repeating invoice users the most useful reports and insights about their repeating income.
Log in or sign up for Devpost to join the conversation.