Back to Blog

Automated Time Tracking and Billing Integration with Shoutbase & Quickbooks

Published by Stormi Hoebelheinrich on
Automated Time Tracking and Billing Integration with Shoutbase & Quickbooks

Tracking billable hours and invoicing—on top of completing the actual job—can be stressful, especially if you’re part of a small business where you’re wearing multiple hats. What if I told you there was a way to ease that burden, allowing you to spend less time working on non-billable tasks, such as entering data and tallying up completed work to prepare invoices? The magic words are “integration” and “automation.” By combining existing tools and allowing them to communicate and work together, you can automate certain tasks and get more done faster.

Zapier is an online tool that makes it easy to create integrations. In minutes, I’m able to create “Zaps” that automate my tasks, saving more time (and money) each day. In one example, I use Zapier to automatically create time activities in Quickbooks from my preferred time tracking tool, Shoutbase. Shoutbase makes time tracking a breeze and fits into my workflow with minimal interruptions. Entering time directly into Quickbooks is more tedious, but this is where I currently bill from and therefore need the time entry data. After setting up my Zapier integration, I’m now able to start and stop time entry tasks in Shoutbase, and the data is automatically transported to Quickbooks for billing.

This step-by-step guide will show you how to create the Shoutbase and Quickbooks Zap described above. At the end of this guide, you will be able to:

  1. Understand how to create a basic Zap in Zapier.
  2. Use Shoutbase to create time entries.
  3. Have time activities automatically created in Quickbooks when new Shoutbase timers are created and stopped.

Getting Started

Before creating this integration, make sure you have the following accounts set up and a basic understanding of the systems we’ll be working with. If you’re new to one or more of the technologies listed, I’ll include information about getting started with each.

Shoutbase

Shoutbase is a time tracking system built for speed and simplicity. It’s optimized for fast data entry that lets you record time quickly, so you can get back to what you’re doing with minimal disruption. Shoutbase is free for individual users, and setting up an account is a breeze.

Quickbooks

Quickbooks is well-known accounting software. It allows businesses to accept business payments, manage and pay bills, and complete payroll functions. If you’re brand new to Quickbooks, you can start a free trial. Make sure you have at least one employee (yourself) and a customer. These will be used in the tutorial.

Zapier

Zapier is a tool that helps you integrate the different web applications you use to help you save time and energy. Zapier also includes a free trial and a free tier. If you are brand new to Zapier, check out their Getting Started Guide to gain a basic understanding of using Zapier and creating “Zaps” before continuing with this tutorial.

Technical Design

Before jumping into creating the Zap, here is a brief technical design of how our Zap will work.

  1. User creates time entry in Shoutbase. This is our “Trigger,” which means this event will cause Zapier to run the processes we define in our Zap.
  2. Zapier polls Shoutbase for new time entries by the user. Every 5-15 minutes, Zapier will make another request to Shoutbase to fetch entries.
  3. Shoutbase responds with a set of time entries.
  4. From the time entries response, Zapier determines if there are any new time entries since the last time it made a request. If there are no new time entries, nothing happens, and Zapier resets to make the request again in 5-15 minutes. If there is a new time entry, Zapier continues to the next step.
  5. When a new time entry is found, Zapier runs custom javascript code, which we will define, to reformat data from the time entry (duration) into the format accepted by Quickbooks.
  6. Once the code is finished running, Zapier uses the data from the previous step to call the Quickbooks API to insert a time activity.

The following uml diagram illustrates how information is requested, transformed, and passed through the integration system.

uml diagram of steps outlined above

Create a New Zap

Log into your Zapier account. Once logged in, click “My Zaps.” Here you will see your Zap dashboard. This is where you can see and control the Zaps you’ve created in the past or create a new Zap. Click the “Make a Zap!” button.

screenshot of Zapier Zap dashboard

Trigger Definition

The first step to creating a Zap is defining your trigger. A trigger is an action that occurs in one system that causes something to happen in another system. In our case, “Shoutbase New Time Entry” will be the trigger.

1. Name Your Zap

I like to name Zaps very explicitly, so I can easily know what my triggers and actions are just by reading the name. In this case, I’m naming my Zap “Shoutbase Time Entry => Quickbooks Time Activity.” You can use this or choose something different.

2. Choose Triggering App: Shoutbase

The Shoutbase Zapier integration is new and currently in beta version. You’ll have to use this invitation link to select Shoutbase as your triggering app. In the future, you’ll be able to select Shoutbase from the list of other applications.

screenshot of Zapier Trigger Apps with Shoutbase selected

3. Select Trigger Event: New Time Entry

From the dropdown menu, select “New Time Entry.” This is a polling trigger event, which means the Zapier API will make regular requests (every 5-15 minutes) to check if there are any new time entries for your Shoutbase account. When there are, it will continue to the next step.

screenshot of Zapier with new time entry trigger selected

4. Connect Your Account

Continue to connect your Shoutbase account. A window will appear requesting access to your Shoutbase account. Authorize Zapier to connect to your Shoutbase account by clicking the “Allow” button. If you do not have a Shoutbase account yet, go to shoutbase.com to register and verify your account.

5. Finish Trigger

In the “Customize Time Entry” section, skip this for now by clicking “Continue.” Next is the “Find Data” section. Here, Zapier will poll the Shoutbase API for recent time entries, to give you an idea of the data you’ll be working with for the rest of the Zap.

If you are new to Shoutbase and haven’t created a time entry yet, now is a great time. Log in to your Shoutbase account. In Shoutbase, create and save a time entry that includes a description as well as a start and stop time.

screenshot of Shoutbase new time entry

Once you’ve created this time entry in Shoutbase, go back to Zapier. Click the “Test & Continue” button. This will poll for new time entries. Select the time entry you just created. And that’s it for the trigger.

screenshot of Zapier find data with Time Entry A selected

Format Data

Next, we need to format the data from our trigger into something our action can use. In this case, we want to parse the duration from the time record into the proper format.

1. Code by Zapier

From the menu, select “Code by Zapier” and choose “Run Javascript” as your event.

screenshot of Zapier with Code by Zapier selected

2. Input Data

Input the data from the previous steps, which we will use in our custom code. Add the duration from Step 1 (time record).

screenshot of Zapier with custom javascript

3. Code

Add javascript for transforming duration, which is recorded in seconds, to hh:mm (hours: minutes) format. You can write custom javascript here to fit your needs. For now, this is all we need to move on to the next step.

You can copy the code below hosted by Pastebin.

4. Finish Code Step

Test your code and continue. If you receive any errors here, check your code for accuracy.

Action Definition

1. Add QuickBooks Action

Select QuickBooks as “App” and “Create Time Activity” as “Action Event.” Next, connect your Quickbooks account in the authorization pop-up window.

screenshot of Zapier with Quickbooks Online Create Time Activity action selected

2. Customize Time Activity

In this step, we will define the parameters used to create our new time activity when Shoutbase time entries are submitted. I have customized this to fit my needs. Your time activities may be customized differently to fit your needs. For now, follow along with these steps, and you can add your own customization later.

For time activity type, choose “Employee.”

screenshot of Zapier with Employee selected as Time Activity Type

For “Employee Name,” choose yourself. If you don’t have an employee, log on to QuickBooks and create one. If you do have employees but your name is not an option, consider creating one for yourself (using QuickBooks). If you choose an employee that is not yourself, keep in mind that your Shoutbase time entries will create QuickBooks time activities for this other employee. I’m choosing Stormi because that’s me!

screenshot of Zapier with Employee name field filled

Select “No” for “Enter Start and End Times.” We will use the duration (hours and minutes) instead of start and end times. In the time field, click the dropdown menu icon. Click to expand “2. Run Javascript.” Select “Time.” This is capturing the time parameter we defined as output in Step 2 of the Format Data section, which is the duration for our Shoutbase time entry in hh:mm format.

screenshot of Zapier with step 2 Time for Time field

Next, add a description. Here you can customize the comment to suit your needs. I like to include the entire description from my Shoutbase time entry. This way, I can read the comment and get the full context of what I was working on.

screenshot of Zapier with step 1 Description for Description field

In the next fields, we’ll define the customer, hourly rate, and other parameters used for billing. I’m simply selecting my generic customer, “Customer,” and entering an hourly rate. This is a very basic example, but remember that you can customize this later to suit your needs. Your customers and rates may be dynamic, depending on the job. You could add additional code to the Javascript action that parses this information from the time entry description or use Shoutbase’s tag system to differentiate time entries. This level of customization is more advanced and may be discussed in a follow-up tutorial.

screenshot of Zapier with remaining fields filled

3. Finish Up

After customizing the time activity, click the “Continue” button. Run your test. Once you receive a success message in Zapier, check your QuickBooks account for new time activities. You should see a new activity appear with the description and duration of your test time entry. Finally, don’t forget to turn on your Zap. This is done by toggling the grey switch at the top of the screen to “On.” When your Zap is on, Zapier will continuously poll your Shoutbase account for new time records. If it’s off, the Zap won’t work.

screenshot of Zapier with Zap turned on

See Your Zap in Action

1. Enter Time in Shoutbase

Now that your Zap has been created and activated, let’s see it in action. Log in to Shoutbase and select “New Entry” from the nav menu. (If you’re using mobile Shoutbase, you can click the blue plus button at the bottom of the screen.) Add some details to the description, then add a start and stop time. Zapier only polls the Shoutbase API for stopped timers, so if you don’t include an end time to the time entry, Zapier will not recognize it until it is stopped.

screenshot of time entry in Shoutbase

2. Manually Run Your Zap in Zapier

Zapier polls the Shoutbase API for new time entries every 5-15 minutes, so we won’t instantaneously see our new time record appear in QuickBooks. However, we can manually trigger Zapier to run our Zap and check for new time entries instantly. To do this, go to your Zaps dashboard in Zapier, find your Shoutbase/QuickBooks Zap, click the dropdown menu, and click “Run.”

screenshot of Zapier dashboard manually running Zap

screenshot of Zapier running zap and finding new time entry

3. QuickBooks Time Activities

Log in to your Quickbooks account and open your time activities. See that the newest entry has the same description as your Shoutbase time entry and has the proper amount. Rejoice that you will no longer have to manually enter time into QuickBooks!

screenshot of Zapier running zap and finding new time entry

Conclusion

This simple Zap took only minutes to put together and saves me so much time and mental energy each week. And it’s only just the beginning. The possibilities for integration and optimization are endless. Zapier lets me expand the capabilities of web applications I prefer interfacing with, while minimizing tedious and repetitive tasks.

I enjoy tracking time in Shoutbase because it’s fast and easy to use and conveniently manages the time for my entire team with tags, goals, and reports. And Shoutbase is actively expanding its capabilities to integrate with other systems beyond QuickBooks, like Jira, Github, and Slack, all by using Zapier.

If you’re interested in learning more, check out my other articles on why and how integrations can make us all better at doing what we do.

Better Time Tracking for Jira Using Shoutbase & Zapier

Tracking Time on GitHub PRs Using Shoutbase & Zapier

Dynamic Duos: Integrating Jira & Shoutbase Using Zapier



What did we miss?

Please let us know by tweeting to @shoutbase on Twitter.

Stormi Hoebelheinrich

Developer of Shoutbase and Olio Apps.

LinkedIn: @shoebelheinrich

Thanks for reading!

If you would like to learn more about Shoutbase, please follow us on Twitter, Instagram, Facebook, LinkedIn, or Medium!

Back to Blog