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!

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!