Zapier's customers depend on its automation platform to complete their work efficiently. When automations fail to run, not only is work interrupted, but it can also be challenging to manually recreate the tasks. To address this issue, I envisioned a version control system designed to eliminate downtime.
Traditionally, Zapier's automations, known as Zaps, could only be in an 'on' or 'off' state. To modify a Zap, it had to be deactivated. This precaution was meant to prevent data corruption that might occur if an incomplete Zap were executed.
However, this requirement meant that users had to schedule changes during off-hours, assuming these periods would not interfere with their automation needs. They also felt compelled to make these changes quickly to minimize downtime, leading to a stressful experience.
I designed a single-branch versioning model that allows users to edit Zaps at their leisure and deploy them once they are confident in the changes.
When a user decides to edit a Zap, the system automatically creates a draft copy, while the original version continues to run in the background. The title bar indicates that the user is working in draft mode.
This setup enables users to make and test modifications at their convenience. Once satisfied, they can publish the Zap, which then replaces the active version with the updated one.
This Draft/Publish mechanism laid the groundwork for a more comprehensive version control system, offering the ability to restore previous versions if needed.
The immediate advantage of the Draft/Publish system was the reduction in downtime, allowing business operations to proceed without interruption.
However, the most significant benefit, in my view, was the emotional relief it provided to users. They no longer needed to work during off-hours or rush to make changes in a live environment. Instead, they could take their time to ensure the modifications were thoroughly tested and correctly implemented.