Using Zapier and Make to automate a remote programming school
https://www.wincacademy.com/

Using Zapier and Make to automate a remote programming school

Codemap expert:?Luc Meijer

Project website: https://www.wincacademy.com/

About Zapier and Make

Zapier and Make (formerly Integromat) are both no-code tools that establish connections between apps; allowing users to automate various processes, saving time, and money, and increasing productivity. This article will explore the case of automating a remote programming school, using Zapier and Make simultaneously.

About Winc Academy

Winc Academy is an online tech educator. They teach in-demand tech skills like programming and data analytics to students from all walks of life and help them get into the field of technology. Despite being a tech company that teaches people programming, Winc Academy still uses plenty of no-code in its own infrastructure. Because Winc Academy is a startup, it’s important for them to move fast. Using no-code tools like Zapier and Make allows them to do that.

The Process of Purchasing a Course

A remote programming school consists of many different processes. In this article, I’ll be taking a deep dive into the processes surrounding a course purchase. This process consists of many steps and makes use of both Zapier and Make. To keep things simple and engaging, not every step in every workflow will be touched upon.

Using Zapier and Make simultaneously

There’s a popular debate about which no-code automation tool is best. If you ask me, the honest and unsatisfying answer is: it depends. For some things, Zapier will be the better choice. For others, you might want to opt for Make. That’s why, sometimes, I recommend clients to work with both of them. Sure, it introduces a bit of overhead, and you’ll have to pay for two subscriptions, but generally speaking, it will be worth it. In this article, I will explain and show you why I’m using both Make and Zapier, and how I’m using each of them for what they do best.

The workflows mentioned in this article will be built solely on Zapier or Make, but my point stretches beyond these two tools. Every no-code automation tool will have its strengths and weaknesses, and I don’t think it’s bad practice at all to use multiple tools as long as using them provides sufficient value as opposed to using just one with workarounds. Working with no-code tools is, in some sense, all about working with limitations. So, when automating, be critical of and honest about the limitations of the tools you’re working with. You may decide to delegate some steps to another tool for some workflows.

Technically Make calls their workflows?scenarios?and Zapier calls their workflows?Zaps. However, throughout this article, I’ll use the terms?workflow,?scenario, and?zap?interchangeably.

Tools Used

No alt text provided for this image

Process: Course Purchase

This process consists of a couple of different workflows and is triggered when a customer purchases a course on the website.

No alt text provided for this image

Add Student to Course on Shopify Course Purchase (Zapier)

Blueprint Link

No alt text provided for this image

Winc Academy’s website is built with Webflow. Webflow has a built-in e-commerce solution, but that solution was relatively limited when the website was being built. That’s why I looked for another tool to take care of e-commerce processes. Ultimately, I found Shopify to be the best tool to take care of this. That’s where this workflow starts; when a new paid order comes in on Shopify. Shopify is configured to take care of most of the analytics tracking, but I’m using Zapier to communicate with the Facebook Conversions API. In this Zap, a purchase event is sent to Facebook Conversions.

I’m using HubSpot for a CRM. Since Winc Academy offers high-quality courses that can be big purchases for students, leads usually take a little while before actually purchasing a course. In other words, I typically have a contact for a customer by the time I purchase a course because they’ve participated in a webinar or downloaded a white paper from the website. In the third step of this Zap, I create a contact for the student if there wasn’t an existing contact yet. Otherwise, I will find the contact information.

Although there’s only one way to?purchase?a course from Winc Academy, there are multiple ways to be added to a course. For example, the Dutch government has various initiatives that stimulate Dutch citizens to follow technical courses in an effort to improve their digital skills. To help motivate students, the government has offered subsidies to educators. Winc Academy uses these subsidies to offer significant discounts on its courses. If a student applies for a course through these subsidies, in Zapier, they will come in via a different route than students who purchase a course through Shopify. The primary difference between these is the trigger of the automation. One is a paid order in Shopify; the other is a form submission in HubSpot. After that, except for the purchase event being sent to Facebook Conversions, the process of adding the user to their course is very similar. That’s why the fourth step of this workflow is a?Sub-Zap.

Sub-Zap: Add Student To Multiple Courses & Create TalentLMS Account (Zapier)

Unfortunately, at the time of writing this Zap could not be shared as a blueprint, because it contains a path step, which disables it from being shared through Zapier.

No alt text provided for this image

After receiving the trigger and relevant data in step 1, this Zap will find or create a user in TalentLMS. Winc Academy uses the Learning Management System to manage its curricula and student progress. Before moving on to the next step, let’s quickly zoom in on that. This step represents a reason why one might use Zapier over Make for some workflows. At the time of writing, Make does not have a step for HubSpot, nor TalentLMS to Find or Create in these tools. That means, that this would require an initial step to check if a user exists. After which, the workflow would have to split up into two routes:

  1. The user exists
  2. The user does not exist

Unfortunately, if you’re using the Router module in Make (or Paths in Zapier), you don’t have access to any of the data generated in that route in other routes. Assuming that all other steps are identical after the Find or Create step, as they are in the workflow above, one would have to split up the rest of the workflow to a different scenario and send the data using a webhook step (which I’ll go over in a little bit). I find that this introduces an inferior structure because it’s introduced an unnecessary split into different scenarios, which makes a workflow far less easy to read and understand. The third step runs a different sub-zap to ensure that TalentLMS hasn’t deactivated the user. That’s because users can do a free trial package for a couple of days. After their time’s up, they will automatically be deactivated by TalentLMS.

The fourth step is where I get my first link between Zapier and Make. When using sub-zaps, it’s pretty easy to trigger a different workflow. Unfortunately, Zapier and Make currently don’t have an integration with one another. Therefore, I have to find another way to trigger a workflow in Make from Zapier (or vice versa). I do this by setting up a Make scenario with a Webhook step as a trigger. Then, I use a Webhook step in Zapier to send over the relevant data. Although not applicable to this step, it’s good to understand that Make currently does not have an equivalent for Sub-Zap. To trigger a Make workflow within Make, you need to have a Webhook step as a trigger and then activate that webhook using the HTTP module.

In the fourth step, I trigger a Make workflow responsible for adding a user to the relevant course(s). I’ll get into this scenario in the next section of the article.

In an earlier step, potentially, a new user in TalentLMS was created. If that’s the case, I’ll need to send the student an email from HubSpot with instructions to log in. However, if the student already had an account in my LMS, no email should be sent. Unfortunately, a sub-zap is required to end with Return From a Sub-Zap step. That means that I can’t simply use a filter step to check whether a user was created. If that’s the case, send the TalentLMS Login Link to HubSpot, and call it a day by running the Return From a Sub-Zap. Because that could result in a scenario where nothing is returned from the sub-zap, namely when no TalentLMS user was created. That’s why this workflow splits into two paths, one where the TalentLMS Login Link is sent to HubSpot, and the sub-zap is ‘closed’ by returning. Another is where the Zap simply returns and does nothing else.

Add Student to Course (Make)

No alt text provided for this image

You might ask yourself why I’m using Make instead of Zapier for this particular scenario. Theoretically, this workflow could be built-in Zapier instead of Make, which would certainly eliminate some overhead. However, at the time this workflow was developed, Zapier didn’t offer two essential features that prevented me from building this in Zapier:

  • an ‘iterator’ module. Today, this is called Looping in Zapier.
  • a ‘router’ module with more than 3 routes. Today, you can create up to 5 paths in Zapier’s Path module.

Another reason to use Make over Zapier for this workflow is that many steps include a filter. A distinct advantage Make has over Zapier is that filters don’t take up extra space in a workflow and they don’t count towards your operations. Whereas in Zapier, filters require a separate step and cost a step.

The first step of this workflow receives a webhook call from Zapier with the data that’s required throughout this workflow. The second step is an iterate, which iterates through an array that’s created by splitting one of the parameters, course_ids that’s sent in the webhook.

No alt text provided for this image

When students purchase a course on the website, they’ll have one course_ids. However, there are alternative scenarios where students are added to multiple different courses at once. Hence, I split this parameter into multiple separate course_ids.

For each course_id, the rest of the flow will be executed. The router is responsible for adding the user to the right course and any course that should accompany the purchased course. For example, some courses that Winc Academy offers are accompanied by so-called live lessons. Students can attend these live lessons to learn more about a particular topic in their course. However, since not every course comes with live lessons, a filter checking the course_id is placed before the step adding the user to the course.

Many steps in this workflow have an error handler. This is another feature that Make does better than Zapier, in my opinion. Upon encountering an error in a particular step, the error handler will allow you to run any arbitrary step (including a few preset ones) to deal with this error. Technically, a similar outcome could be achieved in Zapier by using a Path module, but that would unnecessarily complicate a workflow.

Most error handlers in this workflow just have an Ignore step. That’s because, if, for whatever reason, a student is already in a course, when TalentLMS returns an error, this workflow won’t break. If HubSpot returns an error, I inform a Slack channel called #automation-issues, where someone will take a look at what went wrong and manually fix the workflow for this particular student.

Automation Tips & Tricks

Now that you’ve seen a few examples of how you can use Zapier and Make to automate business processes, let’s go over some lessons from those automations.

General

These tips are relevant to any automation tool.

  • Use folders

Folders help categorize workflows and keep them organized. I highly recommend this because this makes the structure within your automation tool a lot easier to understand for other people you work with (and your future self who might have forgotten some parts of it).

  • Number workflows to sort them

You can prefix workflows with numbers to order them by priority or by how often you need to access them. Most automation tools sort their workflows alphabetically, so you get complete control over how they're displayed by prefixing them with numbers.

  • Use proper naming for folders, workflows, steps, and filters.

Proper naming (conventions) is crucial when working in software development. With traditional software development, as in programming, great emphasis is placed upon writing 'clean code,' code that is easy to read and understand. No-code is no different. What's more, one might argue that naming conventions are even more important because, with code, it's faster to read what the code does than it is with no-code where you have to click on many things to open menus that contain relevant information.

Name things so that it's easier to understand for colleagues, but also for your future self because no one's memory is perfect.

  • Send errors to a place that makes sense: Todo app (Notion, ClickUp, etc.) or Slack

Even the best automation engineers encounter errors and/or bugs in the workflows they've built. Of course, one should try their best to eliminate errors and bugs, but I can't eliminate them entirely at the end of the day.

How you handle errors is very important. Sometimes, they can be handled automatically. Other times, they require human attention and have to be fixed manually. In this case, make sure you have one central place where these errors can be gathered. I tend to use a Kanban board or Slack if the errors are of higher priority.

Make-specific

  • Use notes

In addition to proper naming conventions, documenting workflows by using notes can help save a lot of time when reading a workflow or when debugging. Take, for example, the note written for the Add Student to Course scenario I highlighted earlier. This note contains links to every Zap that can call this workflow.

No alt text provided for this image

  • Use error handlers for Make

Make automatically disables a workflow after 3 consecutive errors if that error poses a problem to the continuation of a workflow. Using error handlers gives you far greater control over how Make should deal with an error. I can not overstate the importance of thinking about error handling when automating things. After having developed a workflow, most of the time spent on activities regarding this workflow will be on fixing bugs, that will hopefully be handled as best as possible by your error handlers.

Zapier-specific

  • Use sub-zaps

Sub-zaps have been a great addition to Zapier. They’ve greatly simplified and improved the reliability of triggering different workflows within Zapier.

Whenever you have two or more steps that are very similar or identical in multiple workflows, you should try to use a sub-zap. This improves the maintainability and reliability of your automation architecture. That’s because, whenever a business process changes, you no longer have to edit every instance of this process in Zapier, you can simply edit the structure of one sub-zap.

  • Create an error catcher Zap for Zapier

Finally, Zapier has a handy app called Zapier Manager. It helps you manage your Zapier architecture. There are various features that are quite useful, but I like the error-catching feature.

You can set it up to do anything whenever an error occurs in one of your zaps (in a particular folder).

No alt text provided for this image

When to Use Make vs Zapier

Let’s close this article with some final thoughts on when one should use Make or Zapier.

Make

  • Better filters

Because filters don’t cost anything extra in Make, it would be wise to consider using Make if your workflow has many filters on different steps.

  • Better editor: Copy/paste modules, Reorder modules, Undo support (?Z / CTRL+Z)

This might be a personal preference, but in my opinion, Make editor is more flexible than Zapier. Copying, pasting, and reordering modules happens quite often. Not having to set up everything step-by-step can save a lot of time over the long run. And, let’s be honest, how many times in your life has been able to undo something saved you a lot of trouble.

  • Arbitrary API calls (make unsupported API calls)

Finally, many apps in Make have an action that allows you to make an arbitrary API call. In other words, if there’s an action missing from Make that the API does support, you can ‘write’ it yourself in Make.

Zapier

  • Custom code step

If you can write code, this is a major advantage that Zapier holds over Make. Sure, the Make an API call feature is very handy in Make, but being able to write and run custom code is the most flexibility you’re going to get from an automation tool.

  • Create or update step

As mentioned earlier in the article, some apps support a Create or update step. This can help keep workflows a lot simpler and should probably be used whenever it's relevant.

  • Sub-zap

Another big feature that Zapier has and that Make is yet to implement is sub-zap. Sub-zaps massively improve the reliability of multiple-workflow processes or different workflows that consist of similar/identical steps.


If you're looking to hire top no-code & automation professionals to help you build your own project, you can learn more and?get started at?Codemap?- world's 1st platform for elite no-code talent.

The process is easy! First, use our smart brief to describe your project. Next, upload it to the Codemap platform and start receiving proposals from freelancers or agencies within as little as 20 minutes. You can also screen the profiles and portfolios of our experts and request quotes when desired.?

Once you have decided on the right fit for your project, simply accept the offer and get started. Launch in a matter of weeks!

Joran van Aart

Interim Manager | Strategy Advisor I Entrepreneur

2 年

We practice what we preach :) Well written ?? Luc Meijer!

Niels Bom

Helping people change the world with digital tools

2 年

Thanks ?? Luc Meijer ??

Dave van der Wal

Marketing & Communicatie Adviseur

2 年

Lekker bezig Luc. You rock ??

要查看或添加评论,请登录

Codemap.io的更多文章

社区洞察

其他会员也浏览了