Creating Contracts

See here for an update!

Part of my job involves creating contracts… lots of them. Every season musician receives contracts for the season, summer, and any extra events. Then there are substitute musicians who receive a contract for each performance that they do. Now, these contracts are not hard to create. I have a template that needs to have the musician, their instrument, their contact information, and the information for the concert(s) added to it. Then the Word document needs converted to a PDF and emailed out. When you include the time to look up the information, it takes a little under 5 minutes each time. This amount of time can really add up when you create these a time or two a day. Then there are the days when I have to create 50. Now that takes a while.

Due to the time suck of these contracts, I’ve obviously created a way to make this much easier. To do this, I use Airtable, Shortcuts, Zapier, Google Docs, and Hazel. While I do use several programs, I don’t interact with all of them when I’m running my program. Zapier and Shortcuts do that for me.

I store all my musician records in Airtable. So, when I need to create a contract, this is where I would look to find their instrument, address, email, etc. Luckily, Airtable works nicely with other programs and can send its information into Zapier without any input from me. This is a crucial part of my workflow for many automations now. If I kept this information in Microsoft Excel, it wouldn’t be possible. I previously kept the information in contacts on my phone. This was possible and the automation worked fine. However, switching to Airtable gave me many more options both for automation and general organization.

How this workflow essentially works is that I select a Shortcut on my iPhone. It asks me the name of the musician, which I type in. It is very important that I spell the name of the musician correctly. I suppose I could create a list to select from for this, but I deal with over 250 people. That would probably take a while to add in… Once I type in the musician’s name, a menu pops up that asks me to choose which concert I need to make a contract for. Inside the program, there are text fields that fill in variables for the “season”, “concert date”, and “concert information”. When I created this program, I went through and typed this information into Shortcuts.

In addition to the variables that vary based on the concert selected, I also have Shortcuts pull the current date and create a “due date” based on today’s date plus one month. Since I use OmniFocus to keep my crazy life under control, Shortcuts sends it several things to add to my to do list, including the proper tags, projects, and a note reminding me of what the due date I gave to the musician was. These to do list items include to send out the contract, add the musician to the roster, receive the contract back, and send them a copy of the completed contract.

This is where the magic begins. I place a “url” block in Shortcuts, including the Zapier webhook link (we’ll find this in a bit, there’s a bit of back and forth with Zapier when setting this part up). A “get contents of url” block follows this, using the “Post” and “request body” options. I put the name of the variable in the first column, and link the Shortcuts variable in the second column. This section is ultimately taking all the information that Shortcuts has and is sending it off to Zapier for the heaving lifting.

Whenever I run this Shortcut, all the information immediately goes to Zapier. This wonderful program then takes the “musician” variable and searches my Airtable record (with all the musician information!) and finds the record that matches. This is why it is important to spell the name of the musician correctly, otherwise it won’t be able to match it to a record and will result in an error. Yes I’ve discovered this the hard way.

At this point, Zapier has all the concert information from Shortcuts and all the musician information from Airtable. Now, it can start creating the contract for me.

I created a template for the contract in Google Docs. In order to create placeholders for the variables to be inserted into, you create things that look like {{this}}. I placed these throughout my contract with things like {{musicianName}} and {{concertInformation}}. It is important that these are only one word and that there are no spaces included. As you work through the Zapier instructions to connect all the informaiton you have to the template, it will ask you to link {{theseVariableThings}} to the information that it has. Once all this information is added to the template, Zapier will save it as a new file in a specific Google Drive folder with the musician’s name and concert date as its name.

Because I have multiple Zaps that include this folder, I use a separate Zap for the next part. This could likely be combined, though.

Zapier will watch that folder and saves anything new that appears straight to my Dropbox. Since I have Dropbox linked to my computer, it will automatically download to my computer (and phone, and iPad). Once it’s on my computer, it’s easy to use Hazel to organize it. Hazel takes any documents that appear in my Zapier folder and immediately turns them into PDFs and OCRs them. Then, it moves the contract to the proper folder for that concert.

This method is rather complicated and took me quite a while to figure out and set up. However, once it was done, a five minute task has become 30 seconds. That makes it all worth it.

See here for an update!

One thought on “Creating Contracts

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s