Zapier has an impressive catalog of supported apps and workflows for automation. I still regularly run into use cases where either the app is not supported or the workflow is too complex to implement with Zapier.

This is at least what I thought until I stumbled upon Zapier’s custom Code action today. The action lets you run JavaScript or Python code snippets within a Zapier workflow. This made me jump and I dug deeper to see if this would solve my current problem.

I’ve been trying to build a workflow where a user chatting to my Facebook Messenger chatbot built with ManyChat is able to signup to a webinar directly in the chat without having to visit the registration page. I’m using WebinarJam which unfortunately doesn’t have a Zapier app supported. They do have an API though which gave me hope I might get this to work.

The workflow is conceptually simple:

The user initiates a chat with my bot.

The bot asks if he wishes to join the upcoming webinar.

If the user confirms he asks for the email to sign him up to the EverWebinar platform

Once registered for the webinar the user receives a unique link in the chat that allows him to join without having to type his email again

My first implementation was based on a Code action where I pasted my custom script into which would invoke the WebinarJam API for the user signup. The script was pretty generic but had to be customized a bit with the correct API key of WebinarJam and the webinar ID. This was fine for me but a bit error-prone for a non-technical person setting up future Zaps for other webinar workflows.

It also meant that over time I would have tons of copy pasted code snippets throughout the different Zaps, possibly even spread across my client’s accounts. With the slight chance of my code not being absolutely bug-free or WebinarJam daring to change their API in the future, I was not looking forward to the maintenance hell awaiting me…

A bit more googling and I learned that Zapier actually allows you to build your own Zapier Apps for internal use! Even better is that they have to be written in Node.js! And even, even better they allow you to share the Apps with any other Zapier user or even submit them for public release in their catalog.

This meant that I could code and test the app in my local development environment and push new versions of the code at any time. All my Zaps and clients using the App would instantly have the latest version of my webinar automation.

It also eliminates the error-prone fiddling with my code to setup the configuration variables as Zapier apps can define user interfaces for configuration including text inputs, drop downs, dates, passwords and even files. Check this for a complete list of types. They go so far to even support dynamic configuration fields that could be fetched from an external API — I can see plenty of use cases opening up with this feature.

The Zapier Developer documentation is pretty solid — a bit confusing as they just deprecated an old version of their app builder. I just took one of their sample Apps, stripped out whats unnecessary and added my WebinarJam API integration. Took me only around an hour to get a fully working Zapier App that can be visually configured with all the necessary options.

As you might have figured I fell a bit in love with Zapier having discovered this. Its the most straightforward way I know to enable non-technical entrepreneurs to setup and maintain the most complex automation workflows. Zapier came up with a brilliant way of separating the coding side with full control for developers from the business-side where its just clicking through a visual configurator with live data visible at all times.

If you are interested in the WebinarJam Zapier App for this specific webinar signup example just contact me.