Learn how to set up an automation that will help you save at least 1 hour of work per month for every 10 clients you have inside Teamwork.
We'll be building an automated tool (a node based server that's thoroughly commented to ease the process for you) with step by step instructions to make this as easy for you as possible.
Managing a team of digital marketers means helping them work at peak efficiency with as few roadblocks as possible. Sometimes little things can make a huge difference. In our agency, recurring tasks and how they look to each team member, was getting in the way to our success.
When I signed up with Teamwork Projects, I was stoked because it allowed us to quickly set up and powerfully manage projects for a digital marketing agency of any size. It is our favorite project management software and is currently one of the most popular choices for digital marketing agencies needing to run efficient projects, workflows, and recurring work like monthly retainers.
One feature I really like is the ability to set up recurring tasks (or a task that repeats routinely daily, weekly or monthly or annually).
Teamwork allows us to assign the task to repeat each Tuesday.
I set up each project up once and then Huzzah, each team member would execute the tasks each month.
Then team members started to offer feedback.
While I was stoked about the project administration simplicity, the team hated it because when they marked a task complete, it wouldn't go away, it would just create a new task with the next deadline.
The fact that the list never seemed to get smaller made them feel anxious.
The team's anxiety was hurting their ability to get their jobs done at peak performance. And this was what compelled us to find a better way to work.
So I dove in deep into using Tasklist Templates in Teamwork's robust help center.
A Teamwork Projects tasklist template is a tasklist that you create inside your Settings (if you have the appropriate permissions) wherein you can define the task's details, resource files, start and end dates, team member or role (more on this below), and more.
Simple and very powerful, they would serve as the cornerstone of our solution.
We already used tasklist templates and knew that a more structured and automated approach could be the solution we needed.
First, we needed to define what success would look like. We knew that our new way of managing monthly work would need to:
We learned that automating this process could save 1 hour /month of work for every 10 projects in Teamwork.
Here's how our automated solution works:
For this automation to run, you need to set up several things for each project in advance inside Teamwork and on your Server.
You need to create a tasklist template for each Project Category that you want to include in your monthly automation.
Pro tip: make your life easy by naming each tasklist template to match the name of the Project Category.
Pro tip #2: assign each task to choose later and put the name of the role in the popup like this:
This will allow our automation to assign the task to the user with that role inside the project when the automation runs each month.
Set up the Project Category to match the tasklist template that you want your team to execute for the client every month.
Log into each project's settings by navigating to Project > settings along the top navigation over the project's tasks.
Once on the settings screen edit the Project category and set it to the appropriate category.
When you build out a project in Teamwork, assign different roles to each Project.
In our agency, each SEO project had a simple set of roles: PM for Project Manager, SEO for the responsible SEO, PPC for Paid Search Practitioner, and DEV for the team member who would be building out content for each project on a client's website.
The zip contains the index.js file (that you'll see commented below) and also the node dependencies you'll need.
Here's the main file that you'll be customizing
You'll need to update the Index.js file as follows:
Set up a linux based server (it is really easy we promise). We love Digital Ocean. This is an inexpensive host that costs us less than $10 each month and is our home for our automated scripts that allow us to automate a number of processes that run each month.
Digital Ocean is a breeze and you can sign up with them here and save $50 over the first 30 days with them.
According to Digital Ocean's documentation, "Digital Ocean Droplets are flexible Linux-based virtual machines (VMs) that run on top of virtualized hardware. Each Droplet you create is a new server you can use." They are easy to set up and super easy for us to use.
Here's how Digital Ocean recommends you build your droplet from their control panel.
Good news time: the least expensive plan that costs $5 / month is totally sufficient.
Choose: 1GB / 25 GB of SSD Disk Storage which will set up a Ubuntu 18.04 server for you.
Take note of your ip address that is created as you'll need this whn FTP in / SSH in to upload your script / setting up the cron.
For the purpose of this article we'll be using a root password to make it easier for you to set up your FTP tool / your SSH terminal or putty connection. I found that setting up a root password was much easier than using SSH Keys. If you want to set up SSH Keys you can follow Digital Ocean's documentation here.
In terminal, we set up our FTP connection like so:
Port 22, SFTP, Address: is your Digital Ocean Droplet's Ip address: User: root, password, your newly created password.
After creating settings, connect to the server. You'll be set up in the root directory of your droplet. This is where you'll add your automation files in the next few steps.
Now that you you've edited your index.js file, you'll want to ftp the auto folder named auto and all the files and folders inside to root folder in your new server.
We are so close now. Get excited.
You can edit your cron via FTP or via SSH, we'll show you how to edit it via FTP, because it is super easy.
In your FTP software you'll want to go up one level, and then navigate to Var > Spool > cron > crontabs > and double click the file named root inside. We'll be adding one line to the end of the current crontab.
We set up our cron so that it runs at midnight on the first day of each month. You can modify the timing to match your needs by going to cronguru to learn the proper syntax.
If you want to use our method add the following line to the end of your crontab:
0 0 1 * * cd /root/auto && node index.js > /tmp/project.log
This sentence tells the cron to go into your auto folder and run your index.js file with node at midnight on the first day of the month.
You can test the cron by modifying and your cronjob file so that the time and date are a few minutes out from now. Again, use Cronguru to help you set that up.
After you run the script, make sure to delete the unwanted tasklists in each project and get stoked for time savings.
Share and learn about automating your digital marketing agency.