How do you organize your Code by Zapier?

  • 1 November 2019
  • 8 replies
  • 1073 views

Userlevel 3

Recently I've tried a new Code by Zapier feature and enjoyed it. Then I thought that just pasting code without introducing its versioning makes me feel worried. But as far as I can see you don't have code versioning inside Zapier, you can only use external services like GitHub, GitLab, and others for this task. Do you face this problem? How do you solve it? Or do you organize your code using other principles?



8 replies

Userlevel 7
Badge +1

I think this is covering a broader issue with Zapier involving version control, not just around the code functionality.

What would be incredible is if each zap had version control functionality on each trigger/action.

That would give say code by zapier its own separate version control outside of everything else. That would just be in a perfect world though.

As a whole, Zapier needs more version control and documentation capabilities. Allow us to "save version - log some documentation on that version" and then be able to jump forward/backward between versions.

Right now we are using Slite to store some of this very broadly (our internal documentation software, this is not ideal). I have thought about using GitHub, but we have so many minor code snippets across all clients and zaps, it just feels far too disconnected from the zap itself. Maybe Zapier could integrate with GitHub for version control and just spit out the raw JSON into our GitHub account?


Userlevel 7
Badge +11

Hi @alex - I know that we've talked a lot about version control generally in the Community but I wanted to let you know that I've added a specific feature request for the Code by Zapier app asking for either internal version control or a link to an external tool, like GitHub. As always, we'll reach out if we have an update on that feature request 😀


Userlevel 7
Badge +9

But @Danvers I think it goes beyond just the code step, The next level would be code versions across many code steps in different zaps etc. The level beyond that would be as @alex described it as Zap version control.


From what you said here it seems as if the feature request is just for version control within a specific code step. I find this to be very narrow and I would hope the Zapier developers would do something more integrated/wholistic for those of us who have similar if not the same code steps across many zaps (and across clients).


Userlevel 7
Badge +11

Thanks for adding some more depth and clarity on what you'd like to see, @Paul. I have to confess, I hadn't considered those cases where you might have similar/the same code across multiple Zaps or clients.

I would imagine that that kind of thing would be a bigger feature request (ie it's not something that would live just within the Code by Zapier integration) so I've passed on your feedback to the wider team. Thanks for helping us to better understand your needs!


Userlevel 7
Badge +10

@Danvers

Version control/rollback ability over entire zaps would be highly useful.

Take my high-usage client for example. We're trying a few tweaks to the zaps to reduce task usage and overcome some Google Sheets issues. As these zaps trigger several times per minute on live orders I don't want to make the change direct.

So, right now, I make a copy of the zaps and edit them - however some are webhook triggered and copying the zap means a new webhook URL which I then have to patch into the other zaps to get them working again.

In my case it would be great if I could branch off a dev version of a live zap, that keeps all it's steps and its webhook trigger URL. I could then make changes and select that I want that version of the zap to be the one that runs live. If there are issues, I'd like to be able to instantly switch back to the previous version of that zap.


Userlevel 7
Badge +8

Hey @AndrewJDavison_Luhhu that makes total sense! We've had a lot of requests for version control in the past and definitely something we're working towards for some of our higher plans. I've recorded this feedback as well to make sure your request and use case example gets passed along to the correct team here. 🙂 Thanks so much for sharing!


Userlevel 3

Great to see that the conversation continues. I've also done some investigation on the topic. I guess the solution will suit both for @PaulKortman and me. On the one hand, it supports versioning; on the other hand, you can reuse code between Zaps.

I've created a small Node.js API that does the data handling I initially had in the Code by Zapier. I have the code source placed on the GitHub and deployed on Glitch. When new commits arrive, I can run the redeploy manually. If you use GitLab, you don't need the manual part.

Then I request data from the specific URL and use it further in Zap. It's more comfortable to share this little piece of code between Zaps than the full version of data handling functionality.

image.png

Userlevel 2
Badge

It's more comfortable to share this little piece of code between Zaps than the full version of data handling functionality.

So:

  • Paste this block wherever you’d use Code by Zapier, substituting the URL for whereever it’s available online.
  • Name the parameters used in the call
  • Update the URL 

Now multiple Zaps can call the same URL, and its version controlled.

A couple of things:

  • This can be extended to POST, including the post body from some things from inputData

It’d be great if Zapier could add a “Remote Code by Zapier” action to make these stand out differently to local code block
 

Reply