Why we’ve built a backend system for Refuga

7. December 2016



We love to share stuff about what we’re working on at Refuga and give some insights into what we’re doing and why. Today I want to share a bit about something we’ve been working on behind the scenes, to easily run all aspects of Refuga.

Last year, when we slowly tried to do more trips, it quickly gave us a lot of administration. The challenge was to keep track of cash flow, profitability on each trip and all participants. Stuff like this just took more and more time and the information were spread out in different inboxes, spreadsheets, and systems.

We’re passionate about doing trips and filling them up and we want to make everything else as lean and easy as possible, so we can focus on getting people on awesome trips. After testing different standard CRM systems etc., it was obvious that there was no perfect fit. I’m a really, really big fan of standard systems because they can be great and cheap tools to get started very fast. I know people running pretty big companies only based on standard systems.

But I also believe at some point, either if your company grows or if it’s very unique in it’s way of doing stuff (or a combination) building your own system can lead to major benefits.


The system

The overall idea with our backend system is that we wanted one place to manage everything and we wanted to make it as simple as possible. What we needed was:

  • A complete CRM of all past participants and leads
  • An overview of all new leads and sales
  • Current overview of all trips (what’s the current profit/loss, how much of the capacity did we sell etc.)
  • Reminder system, so all tasks related to following up etc. is in the system (and not in our heads or just email inboxes)
  • Financial overview. We wanted to have the absolute most important metrics show all the time, so we know how we’re doing. Metrics include:
    • Marketing spends (in the percentage of revenue), capacity sold, monthly revenue, profit/loss, future payments and a few more.

Under here you’ll find a few screenshots from the system and explanations about the features (I’ve blurred out names and some of the numbers):


The most important thing initially was to get a complete overview everyday and that’s what you see here on the frontpage. Everyday when I log in I see the current status on all upcoming trips and how we’re performing right now. This way everyone always knows how many spots we have left on each trip.

The next thing we’re building here is a box with marketing spend per lead and per confirmed participant. When we develop trips we know exactly how much we have in marketing per participant, so getting this number across all trips will let us know if we have to improve or if we can push harder.




When clicking on each trip you get a page just for that trip with all data and status about that trip. A complete overview. There is also an overview of all people associated with this trip, all leads and all confirmed. Here we can click the lead and see what the status is and we can see how much information we have sent to confirmed participants.

Scrolling a bit more we will see cash flow charts for that specific trips, both on what we’re budgeting with and how the real life scenario turned out.



When clicking each person we go to their profile where we can see some basic info, notes we have made and reminders that we have set on the person. A reminder can be that we have to follow up, send information, send visa info etc. Here we also see the trip history (which trips has this person been interested in and how many have the person participated in) plus all payment history.

Inspired by some cool CRM systems, I want to rebuild this a little bit to make it more like a time line, that includes all info about the person in a chronological order, including notes, reminders etc.



We also have a complete lead section, which is more or less the same as you would see in the backend system of an e-commerce site. This is where we go every day to see all new leads and sales. Here we have everything no matter if it’s a person added manually in the admin, someone interested in a trip or a direct sale online.

After trying multiple models for signing up, we have found a sweet spot with both having direct online booking and then triggering a pop up on each landing trip. Filling out that popup with name and email and we will keep you updated on the trip (like sharing profiles on confirmed participants, letting you know when there are just a few spots left etc.).

In the lead flow we can name, email, trip and time, but also where they came from. If the person was added manually, we can see who on the team did it and if they came from the pop-up, we can see exactly where that pop up was triggered (can be triggered in 4 different ways on the landing page).



We really wanted online payment, but it was difficult to find a gateway that was a perfect match, so we made our own complete payment plugin. We’re using Stripe and it’s 100% connected to our admin system and can be setup up on another site in 15 minutes.

When going from a landing page to the checkout you’ll get info about that trip and the trip leader – all which are filled out in the admin system.

We’re also using unique parameters in the first steps of the checkout, so eventually we would be able to send emails to people who go through some of the steps, but doesn’t finish it, with a link to continue with their basket (again, inspired by e-commerce sites).


Automating and building a foundation for scaling

The whole idea with the system is to do everything as lean and automated as possible, so we have more time for the participants and for creating awesome events. I think most people working with events will confirm that it can be a bit tricky to scale. That’s why we want to build a foundation that lets us focus on the most important things.

Going forward one of the most important things with the system is going to email. We want to go away from sending normal newsletters, that are normally pretty standard and sent out to not very well defined segments. Instead, we want to focus on getting leads for each trip and then communicating with them via email. Most more personally and specific. That’s something we’re building right now.

Besides that, we want to connect the system a bit more with our marketing spend. Doing more events and selling more tickets will require that we spend a bit more on marketing and we want to control that spend 100% to make sure we’re doing the right thing. Right now we’re connecting the admin system to Facebook Marketing’s API, to get live data over.

One is where the system can become crucial is as kind of business intelligence tool. We already have cash flow charts for each trip, both on what we budget with and how it turned out in real life. That can be used to analyzing our work with a trip and improving it afterward. Just like that, we have a lot of data in the system, that – in the future – can be used to analyze and improve everything we do.


If you want to build your own system

Based on our work with many standard systems and building our own custom system, my learning can be compressed to the following:

  • Use standard systems as long time as possible. There are so many awesome systems out there, where you just pay a monthly fee for using it. There is no reason to build your own if you can buy it for $30 per month. Working with standard systems first you will also get a lot of experience with what your business actually needs and what it doesn’t need. I would never build something if I hadn’t tried a lot of other systems first.
  • If there is something you can’t find a standard system for, try to build it as simple as possible. We started out with wanting to have cash flow, status with trips and participants list. We hired a freelancer who built all that in Google Spreadsheet. It was very complex, but it was more or less our first version of the system. It cost us under $250 and we used it for a long time. Besides that we adjusted it and it was the foundation for building the real first version of the system you see above.
  • Save money where you can, by buying an admin theme on sites like Themeforest. There are so many great themes out there for just a few dollars, so there is no reason to get it designed yourself. We wanted to focus the developers hours on building the system, not clipping up a PSD that would just add to the cost. We used this one ourselves (I have used the same to build a system for Radimet, ByHappyMe and others)


What did it cost?

We’ve spent +1.000 development hours on the system. Besides that is project management, deciding what we needed etc. I think we did it the right way, but we also made some small mistakes, where we had to start over with features etc. Of course, that adds to the overall cost, but I guess that’s pretty normal in development of systems.