The Simple Way to Handle Multiple Airbnb Accounts

If you are a property management business or an ‘Airbnb entrepreneur’ then chances are you will manage multiple accounts. Having multiple accounts on Airbnb is necessary if you have a large volume of properties as it can and will break the backend of the website. I found this out personally and during a meeting at the Airbnb Singapore office I asked them how to fix such a problem, they told me to split the accounts up so that is what we did.

It wasn’t long before we were managing double digit numbers of accounts. This can be a pain. An enquiry comes in on one and a reservation on the other. With no systems, you would have to log in on the one, then log out and log in on the other. All of this costs time and it does add up so there must be a better way.

Use a PMS I hear you cry!

The property management systems all have their flaws. They are a one size fits all model so it is not personalized to your specific business and you will often find that it doesn’t work as well as the sales person promises you during the demo. These are issues before even mentioning price. Using a PMS when you get into the hundreds or thousands of properties range is simply expensive. You will be spending thousands a month and that is crazy.

One of the most sought after features of a PMS is the multi inbox. This means that you get all the messages from multiple accounts all in one place. Sounds awesome, and it is. You really don’t need to spend so much money to do it though. I’ll be going through the steps of setting up your own in a further blog post shortly.

Sometimes the Site is Needed!

Whilst you can build up systems to handle multiple inboxes. Enquiries, reservations and all that jazz. Some things are needed to be done on the site and having a quick way to get into your different accounts is important. Off the top of my head, some of the things which are a pain to do not from within the platform are the following;

  • Dealing with Airbnb Support. Uploading photos as proof and replying to their messages.
  • Alteration requests. Sending these and responding to them.
  • Checking transaction history of specific accounts. You will be surprised how often Airbnb keep payments in the ‘future transactions’ tab. It is worth checking regularly! I once had over $5,000 held for no reason.

Give Forth Thy Wisdom Already!

Ok, ok. It really is simple. The business I run is very desktop dependent. We work on computers to handle most things and do not do things with our phones that often. We can however switch quickly on the phone. I’ll go into that after!

The main trick though is using software like Wavebox. Wavebox is pretty cool and was initially an email app to handle multiple email inboxes. What you can do with Wavebox is literally set up multiple profiles for different Airbnb accounts. It will keep these accounts logged in as separate entities and you can switch between them seamlessly and super fast. You don’t need to use incognito or anything like that. Just set up the different profiles.

You know what is really cool about Wavebox though? Well, huddle in a little closer. You can have your email on it also or a messaging system such as Slack. If you have an email which gets all the emails for the multiple accounts you operate then you can run things from your inbox. If there is something that needs actioning, you simply right click it, and open in wavebox profile.. choose the account which the email refers to and job done. It will load up a logged in window of that account to the message or action that is needed. Awesome!

Creativity Runs Wild!

When you figure out this stuff and get it working quite well. You might let your creative juices flow a little more. We use an email parser to take care of most of the communications we get from Airbnb. This means we don’t have to deal with hundreds of inbox notifications every day. With the parser, we can extract certain information and send it where we need it to go. We use Slack as our command center. This messaging app is super powerful. We use it for messaging but in reality it is our PMS. Our switch board and all powerful tool.

Sorry about blurring parts of this out… but hey, data protection and all that! So what is going on here? This is a message we get in Slack when it detects we confirm a booking which is less than 7 days away from happening. The guest needs to be send the check in information and we have Slack running in Wavebox which is super convenient. When this message pops up, I simply need to go to the ‘Direct message guest’ button, right click it and open it in the Airbnb account of the booking. It will load up the message conversation with the guest. I then simply copy the message in the box and send it to them. After this I can close the window, and hit the ‘Click when done’ button. Lots of automation is possible with Wavebox, this is just one of the many ways we run our business efficiently.

Let me know how you get on with Wavebox and multiple accounts. Nobody paid me to write this and I just enjoy the tool and it has helped me a ton. It is a hidden secret and works great.

Building an Auto Reconciliation Tool for Xero

Xero is a pretty cool tool for accounting. It helps you to input all your income and outgoings and populates charts which tell you what is going on. Profit & Loss, Balance Sheet and all the good stuff! I wish I could say that I had this stuff organized from the beginning but that would be a big lie. Roomfilla was incorporated in August 2015. I have just finished putting the best part of 4 years of transactions into Xero and found some issues.

No Auto Reconcile / Bulk Reconcile in Xero

With the bank feeds that you can integrate with Xero, chances are your bank will feed transactions directly into the system. The problem is if you find yourself in the situation that I found myself in and having to manually input a bunch of old transactions into the system. I sped this process up massively using Zapier and Parseur and a few other tricks but even after that, you get an orange unreconciled mark on the transaction… this kinda sucks. The only way you can really get this done is to go into the transaction, click a menu button and then click a button to reconcile. Long. Winded. Nonsense.

It was at this point that I thought there must be a better way to do it. I then remembered a tool I have used for such monotonous tasks before called Fake and got to work with building a workflow and it was surprisingly straightforward to do.

The Outline

The workflow I wanted to create needed to automatically click on the transactions which were not reconciled and do the clicks in the right places to reconcile those documents. Simply really. I thought it would be good if I could set the amount of loops that the flow would run through and also put in some conditions. I saw that on the main statement page ‘unreconciled’ appeared so I could definitely use that as a condition to proceed. Also when clicking ‘Mark as reconciled’ it loads a success message. Again I can use this as a condition to only proceed if this message appeared.

The Process

It really is super simple to build this in Fake. First of all you need to create a repeat block and you can toggle that to repeat as many times as you need to. Secondly, you want to load the URL of the bank statement with the ‘unreconciled’ transactions on it. You will need to filter this by the reconciled row to ensure you get the unreconciled transactions at the top. I then created a mouse event to click the top one in the list. You can hold ctrl and drag to where you want to click. Super easy! After this I created a mouse event to click the menu, and again to click the ‘Mark as Reconciled’ tab. You can see at the start I have a condition to ensure there are some transactions to be reconciled and at the end I have a condition waiting for the success message.

This is a success! A simple workflow to save you time clicking through all this nonsense yourself. Set it for how many transactions you have to reconcile and get on with something else.

That’s about it. There are a lot of boring admin tasks that can be automated with tools like Fake. I had 4 years worth of transactions to do here and it made the process a lot more pleasant. A bulk reconcile tool for Xero would be super useful or a way to do it in their system but it simply doesn’t exist. This is a nice workaround to do it quickly. Quick side note – I can understand why they don’t have a bulk tool as these transactions should all be checked and confirmed. We did this before they reached Xero though so it was a case of trying to get them in the system as efficiently as possible. I hope this has helped someone!

Airbnb Amendment / Alteration Scam

This post is aimed at Airbnb hosts. There are unfortunately ways that guests can use the mechanisms in Airbnb to get out of their reservations penalty free and override all cancelation policies. Unfortunately Airbnb support have not shown any interest in helping out hosts who fall victim to this despite guests clearly showing that they have done this trick for this specific purpose. With that cleared up, let’s get into how this is possible.

What enables the scam?

Put simply, Airbnb introduced a grace period in 2018. The grace period enables guests to cancel a reservation for 48 hours penalty free if the booking starts later than 14 days in the future. The grace period has issues and was not well received by hosts especially those on the strict cancelation policy. It was another policy created at host’s detriment to compete directly with the larger online travel agencies (OTAs).

The issue with the grace period for accommodation is, you can book somewhere, receive all the contact details, address etc from the host and then cancel. Most properties on Airbnb are residential and not hotels like other OTAs. This causes a security threat and a way for unscrupulous characters to gather leads.

Why amendments?

I get it, plans change and sometimes people need to make changes to their trip. This is fine. Airbnb allows both hosts and guests to send amendments for their trip. Both parties have to agree to an amendment to make the date changes confirmed. There are stories about people booking a minimum stay 3 night property and sending amendments for 2 nights, people using amendments and then their card payment failing and the main point of this blog post, people using the amendment feature to reset the grace period and cancel penalty free.

The Airbnb amendment system is broken. If a guest sends an amendment and the host doesn’t want to accept it then you just increase the chances of retaliatory reviews. Airbnb puts such an emphasis on reviews and screws over hosts who might have a legitimate reason for not wanting to accept an amendment. This shouldn’t happen and there should be more protection. Unfortunately Airbnb has grown too fast and you only have to look at their trustpilot page to see what people think of their customer support.

How to prevent this?

It is difficult. People send amendments for a variety of reasons. Some genuine and some amendments are sent with the pure purpose of resetting the grace period so a penalty free cancelation can be made. Airbnb should really step up and build into their systems that once a booking is confirmed there is a 48 hour period. If an amendment is sent, this is not reset. It is lazy development and hosts should never be put in a position of being scammed out of a reservation they have already confirmed.

Some hosts I have spoken to have a blanket no amendment policy and others I have spoken to will verbally confirm the amendment but they will not click the buttons to confirm it on the system. How you handle amendments as a host is up to you. Just be warned, that if someone is asking to make an amendment and the dates are more than 14 days in the future, they may well be doing so just to make a cancel and override your cancelation policy.

Cheap Alternative to Webmerge / Docupilot using Zapier!

Before I start, I’m not saying not to use these tools but there is a cheaper alternative to them. It is somewhat limited so if you are looking for a fuller solution then eat your heart out. Coming from a startup founder’s perspective where we’re watching every penny we spend, there is a way to create the effects of Webmerge and Docupilot without having to spend the money on another bit of SaaS.

For context, Webmerge has a starting plan of $29 but only includes 30 merges so realistically most businesses would be on the next plan which is $99. Docupilot does 100 documents for $29 and 500 for $99. Do you as a small business have an extra $1,000+ to spend on something like this? That is a decision you need to make!

Why Create Documents from Templates?

There are various reasons why your business might be able to save time by creating documents from templates. If you provide tickets, receipts or personalized guides then creating specific tailored documents to your users shows them that you are providing them with that extra service! It also can help your business document receipts / invoices where no two documents are the same. Doesn’t sound bad and it isn’t!

For context, how do I use a document merge service? At Roomfilla, we provide all guests with an e-ticket after booking. The e-ticket has all their booking details on with the check in and check out date. Providing this to guests makes check in easy as they can provide it at the reception of properties and hey presto, smooth, simple and effective checkins take place. We handle quite a volume of bookings on a monthly basis so were looking for a way to do this with the systems that we already use in a cheap and effective manner. I am sure if we used a service like Docupilot or Webmerge then our e-tickets would look a lot prettier, but for the sake of hacking a solution together which doesn’t really cost anything. We decided to use Google Docs. Yes, that is correct – Google Docs.

The Workflow is Simple

Firstly, you probably want to go to Google Docs and create a new document. Use this as your template so create the document as you need it to look. Where you want to add the custom data, just put fields like ‘{{PASSENGERNAME}}’, ‘{{BOOKINGID}}’ etc. It is important to put the double brackets round them. These fields will automatically be detected in Zapier later. Call the file something like ‘Ticket Template’ and remember where you put it in your Google Drive.

This is pretty easy to follow right?

The next step is to actually create the flow in Zapier. If you aren’t familiar with Zapier, it is pretty much a badass product which connects all the tools you use. They have a ton of integrations and you can create some quite advanced stuff relatively simply on it. For this use case, you need to have a trigger – which is where you will get the information you need from and then the action which will be to create the Google Doc document.

A trigger can be anything from a Stripe payment, Typeform submission, Webhook received or in the case I use it an email is parsed with Parseur. We parse all of our confirmed booking emails and then use the data fields from the parse to create our document. After you have set up your trigger source you can go to the action. Here you want to set up your Google Doc permissions and hit the create document from template option.

On the next page, you will need to find the document and fill in the custom fields. When you pull the document in, it will auto generate those fields. Pretty cool right!

What I have done here just for the demo purpose is to take the fields from a push by zapier trigger. You can see how I auto generate those fields, so they will change every time we receive a booking. I can even change the name of the document each time. Here I am using <guest name> – <confirmation code>.

Now that this has been done. It is time to test it and see if it works! Once you have the success message in Zapier, go back to your Google Drive and find the file. Open it up and have a look to see if you have success or not.

Woohoo, it works!

That’s pretty cool right! So that is the basics of creating a document merging data from other software you may use into it. Now that this has been done, there is a ton of other things you can automatically generate. For example, in the workflow I use for Roomfilla, we keep all guest details in a CRM system. We can automatically take this Google Doc document, convert it to PDF. Upload the PDF to a specific dropbox folder, get the share link for that document and add it to the CRM profile of the guest.

This works super well as we have an automated message triggered from our systems 3 days before check in providing them with the e-ticket. This is a separate Zapier flow but grabs this document and sends it to guests and helps us with smooth checkins.

I hope this post has been useful for those looking for a cheap alternative to their document merging needs. There are of course some costs involved in this. You will need to be able to use Zapier, have a source of data which works with Zapier and proficiency in using Google Docs. There are so many things which can be automated and I hope this can spark the interest in some people to try a few things outside of their comfort zone!

BnBChatbot Doesn’t Work – RIP

Sometimes you create something which you think will work and ultimately it doesn’t. The project I created called BnBChatbot is one of those projects and unfortunately now I am signing the official death warrant for it. It was a cool idea and I enjoyed spending time learning about chatbots and the potential they have. Messenger marketing on Facebook has huge potential but this project just didn’t get the traction needed to justify me ploughing further time into it, so it is going on the scrap heap.

Why Kill BnBChatbot Now?

It is a valid question and the truth is, I stopped using it for Roomfilla. If I am not using it for my own project which I thought I built it for to solve the issue I was having, then perhaps the issue didn’t exist or the product I built, didn’t solve the issue as smoothly as I thought. With Roomfilla, a percentage of the business is through upsells of additional services such as transfers, tours and all that good stuff. We invest quite heavily into these sites such as Explore Phi Phi, Kathmandu Bus, Siam Ferry and more peripheral websites.

I spent quite a lot of time building such additional service booking functionality directly into the chatbots I created. The chatbots however were simply not converting as well as the previous funnels that were created. We saw a dip in Stripe transactions during the months when I was heavily forcing all our guests to use bots primarily. We then did a hybrid approach of bot and old style funnels and saw these conversions increase again but it started to become apparent, that why bother with the bot if we can automate the other areas of the communications into such a way that makes sense.

Are Chatbots a Gimmick?

Possibly. They are new, they are exciting and they are different. We had a lot of users interact with the bot during our months of testing and found that guests did enjoy clicking around and probably clicked around more than they needed to purely because it was interactive and different. Chatbots are still not the norm and I think that some people who interacted with the BnBChatbot were having their first interactions with a chatbot like this in this setting which was novel for them. Novelty didn’t lead to increased sales or dramatically reduce our workload so unfortunately it led to the question – what is the point of keeping this going?

BnBChatbot was initially built so I could learn more about chatbot frameworks and how they work. It was built to solve our needs of guest communications and as a potential product we could sell as a secondary service. Building bots for other customers is a truly custom job. The more I interacted with interested parties, the more I found out that everybody has their own systems and wants a bot to work specifically in those systems. Multiple language requests, a bot feeding directly into a complex system and other custom integrations were asked for. There didn’t seem to be a way to mass market these bots which is what I wanted to do. Price low, create a sort of bot template and sell to the mass market. That did not exist and I do not want to be in the business of being a bot builder. There are plenty of those already existing.

A Phoenix Rises from the Ashes

Side projects like BnBChatbot are great. All in all, it was a fun weekend / evening project which I tried to not let consume too much of my idea or focus from my main work with Roomfilla. That was great and it is fun to build something like this from scratch, it stimulates the brain and teaches you a whole bunch of things as you solve the challenges and learn about a whole new area of tech. Side projects often ensure you develop new skills which you may not know at the time, can be applied to other areas of business and life. BnBChatbot is no different, it was made with the intention of ‘how can I automate guest communications?’. We may have just solved that in another way, so thats excellent!

Guest communications is such a tricky thing to automate as guests ask all sorts of questions and there isn’t a one size fits all answer to these questions. The best way to do it when managing a large portfolio of properties is to provide as much information as possible along with the communications and speed up things such as foreign languages being automatically translated to English and have them all appear in the place you spend all your time, for me this is Slack.

With a bit of magic from Zapier, Slack, Gmail API, a teeny Python script, email parsing and a database app. We have created something far better than BnBChatbot ever could have been. Far more efficient. Far more advanced. Far more.. just works. I’ll be going into this in more details in upcoming blogs when I start a series on ‘How to create a DIY Multi Inbox for your vacation rental properties.’

Creating Lists in Slack with Airtable!

I recently started to use Airtable after my previous database provider – Fieldbook declared that they would be ceasing operations from mid June. This has been somewhat of a bittersweet experience as I had to port all of our data over to a new provider and update all the integrations that we had. Zapier tells me that was about 60 zaps that we had to change so that was not ideal. 

Airtable was something that came recommended however so I decided to give it a go and see what could be done with Zapier. One of the reasons that we used Fieldbook was that you could search with multiple fields to find a record. Airtable doesn’t have this function as per say but they do let you search with a formula which does make it possible. Glad that we could solve that nice and quickly!

The next thing I wanted to do was see if I could find a way to list records. I like to use Slackfor creating ‘command lists’ which then can open up a menu of commands. You can see an example of such here in our FAQ list for approaching new properties for Roomfilla.

As you can see we have the list of fields which are from the FAQ and if you type FAQ Registration then it will pop up the information that you have requested. Building such functionality into Slack is relatively simple but not easy. For a demo of getting this done, I want to be able to list some websites in another channel so let’s get cracking.

First I will need to create a trigger, for this I’ll use the words ‘website list’. I will put this into the channel I want it to trigger, in this instance #sales and then go to Zapier to create the Zap. 

So this is pretty basic. The trigger is the message into the #sales channel and then a filter ensures it only runs if the text exactly matches ‘website list’. That is all good! Now we need to find the data in Airtable. The Airtable API docs are pretty easy to understand but there are a few things which you need to know when you start pulling stuff into Zapier. 

You can see here, the documents for the list records from Airtable themselves. To do this we want to send a webhook and here are a few things that helps to make it work in Zapier which I had to get help with from the support due to not knowing!

  • You should use the URL without any of the fields appended to it. In this image you see that max records and view are appended to it so you want to take them out. 
  • This is an important one. For some reason you need to put in a header field, User-Agent = null. The webhook won’t work without this and this was something I needed support to troubleshoot for me. 
  • Obviously you’ll need your API key which you can find by ticking the box in the top right of the image above. 

With this I have the URL and I am adding to show the grid view which is the spreadsheet style view. Below this I have the header fields where I have User-Agent = null and Authorization = Bearer API KEY. If you want to only return a few fields, you can use maxRecords in the query string params to do that. I want to return all so let’s test it. 

The test works but it returns everything like value1,value2,value3,value4. That doesn’t look so great but it is a simple fix with a few lines of javascript. The next stage of the Zap is a code by Zapier section. 

What this code does is it prepends the first record by a dash and a space and then adds a linebreak dash and space to each of the remaining records. Super simple and gets you the data in a way that you can then push to Slack. The final action is therefore a Slack action where you make a message in the same channel with the data. 

How to Split Webhooks with Zapier

Webhooks are great right? They let you pass information where you need them and then you can use them when you need to use them. Sounds perfect! There can come a time however when you have a webhook built into a script which you want to be able to do multiple different things. Multiple different things with the same webhook becomes difficult if you are not passing a lot of data. 

This problem occurred to me. I have a python script which when executed passed a webhook to a URL after every loop through. The webhook will then pass a URL which I then want to search in a CRM system and change the stage of a deal. The issue is, some of the URLs are in the first stage and some in the 2nd and 3rd.. etc. How does one solve this? 

With a master hook that is how! The python script will pass the data to one webhook. This will then go into zapier and that is where the magic happens;

  1. Webhook arrives (trigger in Zapier)
  2. find the URL in the CRM to find the deal
  3. with this found, you can see what stage that deal is. Each stage has an ID
  4. Create 4 fresh webhook zaps and note the URL of the webhooks
  5. Create a google sheet with the 4 webhook URLs, in the same row, add the id of each stage
  6. In the master hook zap, add a stage to search this google sheet for the stage id. 
  7. Finally push a webhook out and build the url with <webhook url>+<google sheet info>+<url data in step 1>
  8. Hey presto, you have successfully filtered the webhooks to where they need to go. 

What can I do now?

Now that you have each of these webhooks receiving based on the master hook zap – you can build the zaps you need for each. The Stage 1 zap can now push the deal to stage 2 and mark an activity as done. The stage 2 zap can now push the deal to stage 3 and mark an activity as done etc etc. 

This is a fairly powerful workflow as it let’s you create a bunch of custom actions based off a single webhook. It takes a bit of time and patience to set up correctly and for a noob like me, dealing with webhooks is something completely new but I am starting to realize the potential now. 

After spending way too long trying to do a PUT request with Python or javascript or some other nonsense, I even found that you can do this with a webhook directly from Zapier! That was a pretty great non technical achievement to set up. 

Do a Google Search from Slack!

Everybody loves going to a search engine when something doesn’t make sense. If you aren’t already at your browser though you may be thinking… hey, how can I speed up my workflow and ensure I can limit my time spend? Well today I introduce you a basic workflow which will allow you to search within Slack. 

I know, I know.. first world problems. This is something which doesn’t really solve much problems but it does speed things up! The benefits from what I could see were the following;

  • Easily create a search in slack, spit out a URL and click it… hello efficiency!
  • Slack is usually where you talk with your team. Being able to share a search with your team is incredibly powerful
  • Everybody loves a Slackbot right? #amiright

The initial outline

Ok, so we want to do a search in slack and then get a Google URL. How would we go about this? Well of course, the workflow will be something I will share below. This is what I want to happen;

  1. Go to a specific slack channel
  2. Write ‘search <thing you want to search>
  3. A bot will send a message with the URL of the search which you can then click

I told you it wasn’t difficult right. So let’s get cracking. I guess it makes sense to try and figure out how Google searches look and understand the URL… let’s search for sausage and beans for jokes… 

A casserole recipe! Well… that looks tasty but look at the top… look at that horrendous URL. Incase you can’t see it, it looks like this – https://www.google.co.th/search?dcr=0&source=hp&ei=eACXWoeOOIzcvgSIwYy4Dg&q=sausage+and+beans&oq=sausage+and+beans&gs_l=psy-ab.3..0l10.2521.4349.0.4456.20.17.0.0.0.0.146.1567.9j6.16.0….0…1.1.64.psy-ab..4.15.1567.0..0i131k1j0i10k1.87.t-_Jvn3kfjY

Not too much of a fan of all that source and following information. Just want something to work and don’t really want to get the Google suggestions… I just want the things that work… I think it is time for a pivot!

The pivot

All the cool kids pivot right? This is mine. Time to use DuckDuckGo. It is like Google but without all the tracking and annoying cookies and other non-edible joke things. If I do a search on DuckDuckGo what do I see? Oh! Oh! This is something I can work with.

More importantly to this is the URL. The URL is https://duckduckgo.com/?q=sausage+and+beans. This is easy and easy to work with. So the string that we need to create is whatever we want to work with + instead of the spaces and we just need to attach the whole lot to the end of duckduckgo.com?q=<SEARCH+HERE>. 

Putting it all together…

like a great sausage and beans casserole.. anyone else hungry by this point? Ok stop messing around. This is a super simple process with Zapier. Let’s get started!

Step 1 – You will need to go create a new zap and have Slack as the trigger. Choose post message to a channel and choose which channel you want this to work on. I chose #random because we never use it. 

Step 2 – We want this to only trigger if the message starts with search. This will mean that if the message is anything else then it won’t trigger the action. You can do this by setting up a filter. 

Easy life that worked! Now to split the text so that you can add it to the search for DuckDuckGo. For this you need to use the formatter tool. First we need to split the text.

Step 3 – Make a Formatter action and then choose the split text function. You want the formatter to return everything after the ‘search ‘ in the message. Very easy to set up like this;

Now that we have sausage and beans I think there is an end to the journey but one more formatter is needed. We said earlier that the DuckDuckGo search uses + instead of spaces. So this time we want to use the replace function. 

Step 4 – Open formatter use the replace function and make sure you use it based on the last output as that is the text we need to manipulate now. Use the replace function and replace the spaces with +. Very simple and your output should look like this;

Yehaw! Now to add the last step which is to push this all back into the #random channel in Slack with the search term. For this you will need to use a Slack action.

Step 5 – Make a new channel message in Slack and choose what you want it to say. For this example I will make it say ‘Click here to see that search! <SEARCH LINK>. Easy way to finish off. I will make it send as a bot and my bot will be Bulma from DBZ because why not…

Turn the zap on and you are now ready to search in slack. Let’s have some fun. 

How to Send SMS from Slack!

Huh, what? Slack is a team tool and SMS is from phones? Well.. SMS might have been only from phones in the days of the Nokia 3210 but in recent times SMS is making a major comeback.. you may wonder why SMS is now so popular, just think. Who sends SMS these days? Nobody. Who always plays with their phones? Everybody. Your message will be seen whereas an email may be ignored. 

Why do I need SMS in 2019?

Good question and I am sure you know how to run your business so I am looking at it from the point of view of a vacation rental manager. We deal with both owners, cleaners and guests. Each present a clear use case SMS, we can shoot reminders, tell people to contact us and fire off schedules and new bookings so staff can prepare. Super simple but you go to the website of SMS providers online and it all looks super complicated. API this and API that… I haven’t got time for that.. I just want a no code no worries solution.. and where do our team always hang out? Slack of course.. 

The Concept

Write SMS messages in Slack and send them in the same message. Pretty simple right? What are the two pieces of information we need here? Well the first is the number to send it to obviously. Without this the message won’t be delivered numbnuts. The second is the message itself. Slack messages are easy to configure so we just need to make it so that it will trigger based on the same thing each time. For the sake of simplicity, how about something like this;

Awesome, that is a workflow that would work. Now let’s ensure it does. Head over to Zapierand chuck it in;

Building the Process

Processes in Zapier are pretty simple, they start with a trigger and then action on top of that. Filter is also possible and super important in this use case. What we want to do is create the trigger based on a message in Slack starting with SMS. This will ensure it only picks up these messages and who else starts a chat with SMS, so you are fairly safe that you won’t accidentally trigger it. 

First stage is choosing where to trigger the message
Ensure it only triggers on what you want it to trigger on (choose something you wouldn’t use accidentally!

Next up now that you have this big string of text is to try and split it up into the pieces that you need. Luckily enough, Zapier has a formatter option which enables you to do just this. You can split text. To get the number, you will need to use the formatter and choose extract number. Do note that by doing this, do not use numbers anywhere else in your message! 

Super easy, now to get the message again go to formatter and do a split text on ‘Message:’ and choose last, this will provide you with the message only. Easy life! Now for the SMS action, for this I use Twilio. 

You can set up Twilio and choose send a SMS. You can then fill in the number of the recipient with the details of the split text and also the message. You will probably want to use your alphanumeric ID if you set this up in Twilio. This is really cool, it lets you send messages as your company, for example we have it set up as ROOMFILLA.

You can then test it to ensure it works!

We also set up one further action in Zapier to push a success message to Slack. For this we chose Vegeta because the power to send a SMS from Slack is obviously over 9,000.

Automating Your Etsy Store!

How did I end up here?

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Selling on Etsy is fairly difficult. If you manage to get some traction then you will find that more sales will likely follow. I started to sell a few things on Etsy to just try to understand the market and dip my toes into some ecommerce. It all started like all good things start… out shopping!

I was walking around Bangkok and figured to go into one of the shopping malls for the air conditioning and shelter from the sweltering weather. I didn’t really have any plans to buy anything and I think this frame of mind is very much the definition of mooching. I was mooching around and noticed there was a handicraft market going on in the middle of the shopping mall and decided to take a closer look. 

Pretty standard stuff but one thing in particular caught my eye – a stall selling handmade natural wood business card holders. I always see these guys at networking events with these metal card holders so figured I could probably make use of one. Purchase made, I went home and decided to research the guys who made them. They had a whole line of products and some of them were pretty cool. I figured, I could probably sell the stuff on Etsy as it was handmade and just work as a middle man connecting the Thai seller with the European, US and Australian buyers. Fast forward 3 months, and the first sale happened. 

Initial Traction

Please note if you are easily offended by me calling myself a ‘biatch’ in Slack, please click the x on this tab. Everybody should have the right to call themselves whatever they want.

That was cool! I can now see when an order comes in but I still need to manually go to Etsy, find out what it is and then message the guys to fulfill it. The deal I made was to not touch any goods, I hate the word but effectively dropship the items where I provide the item quantity and the address, they provide me the bill and everyone is happy. 

Turns out even this takes more time than I wanted to spend… how do you automate this so that I can literally click a button and have it taken care of?

Email Parsing comes to the rescue!

An email parser is something that looks at your email and looks for patterns within it, it then will extract certain pieces of text / data which you can then feed into other applications you may want to use. I figured that the important bits of text from an Etsy order confirmation were the following;

It will end up looking something like this. I took the transaction ID from the subject of the email but could have also grabbed it from the body.

Now I had all the fields I needed there was just one more problem. The makers of the products had somewhat standard names for them. I obviously had tried to make them sound more appealing playing on alliteration and other techniques. I couldn’t just send them the product name that I had and expect them to fulfill it. How would I go about fixing this? Time to get automatic. Let’s head to Zapier. 

Automating the Data

Before creating a Zap (process in Zapier). I like to try and envisage it in my head and write it down if possible. What we want to be able to do here is the following;

  1. Only process on emails matching the Etsy confirmation style – easily achieved with a filter. 
  2. Send the email to the parser – simple with the Parseur application.
  3. Take the parsed text and feed the product into a database to find the matching text – could use Google Sheets for this but I used Airtable.
  4. When the matching field is found, find the other field in the row which is the name the maker gave the product. 
  5. Compose an email to the maker with the Order ID in the title and ‘New Order Received – ID’ in the subject and giving the order details in the body with the quantity. 
  6. Compose an email to the buyer thanking them for the order and letting them know that we have many other products for sale and if they did want more they would save on shipping (the upsell).
  7. Add the customer email to a list – mailchimp or google sheet works here.
  8. Send a message in Slack to provide basic details on the price and items that have been ordered – this just ensures that I see it from the Slack command center. 
Easy life.

Issues to overcome

Parseur which is the email parsing product I use have a table parsing feature. This will identify a table and parse all data within it. This means if someone orders 1 item, it will parse the information for the 1 item, if 2 or 3, you will still get the items parsed. The problem with this is that it is hard to feed it into Zapier with the lookup database workflow to get the real names if you don’t know how many items are going to appear each time. This led us to not using this feature in the parser. So how did we solve it?

Parseur doesn’t put a limit on the amount of email addresses you can use for parsing. I simply created an inbox for 1 item and an inbox for 2 items and so on. It is rare that someone orders more than 4 different items from us, so setting up these 4 inboxes covered 100% of the orders. Now this does mean that you actually have to set up individual zaps in Zapier for each of these to run correctly and you will need to manually trigger the process by looking in the email for how many items before sending it to the right inbox.. this is a small price to pay for the freedom it allows though!