NetSuite and Toggl Integration — Client, Project, and Timesheet Synchronization
“My favorite task is entering Time Sheets!”……said no one…..ever.
When we first launched eXtendTech, we struggled with staying on top of our time sheets. Being new to the discipline, it was a major adjustment and was very time consuming. Beyond accounting for my own time, which I knew I could do better, I had to review time entries for the rest of the team and ensure they were both accurate and that the descriptions were clear and concise.
While NetSuite has a timer within the application, when you’re working in other NetSuite accounts, you can’t keep a timer running within your own related to the task. Beyond that, the NetSuite timer and timesheet entry is not the most streamlined user experience.
I was certain that we were missing time entries to account for our productive time, and I needed to find a solution to make the process easier and more automated.
Time Tracking Solutions
There are several time tracking solutions in the market today. I think there’s a new one born every six (6) minutes, so navigating the field can be a bit of a challenge. They pretty much all look the same, have a free tier with limited functionality, and provide a more user friendly method of logging time and reminding you to log time, so you can better perform this mundane task.
If you’re looking for a couple of options to explore, here’s a few to get you started:
We decided to try out Toggl to see if it would help….and it did.
Life with Toggl
As far as timekeeping goes, it was great. It made it much easier to find a project or task, log time in the background, and it would even remind you to start or stop the timer if it looked like you were active or were idle for too long. We recognized that we were seeing more accountability, and it has some great reports to allow you to analyze the time being spent.
We worked it out where we would populate Toggl with Projects, Tasks, and Resources, and then would export the time sheets out from Toggl in CSV format, and import them into NetSuite. This opened up a new procedure which was certainly less painful than the original process, but still not perfect.
Let’s Win one for the Home Team!
We realized that we’re always busy building different NetSuite integrations for our clients, so why not build one for ourselves? Sometimes you need to treat yourself to something, to make life a little easier, and to streamline your own operational flow. We can’t promote efficiency and automation without living it ourselves, so we decided to be bit selfish and create an integration between Toggl and NetSuite to make our lives a little better.
Being the modern and mature platform it is, Toggl has well documented API’s and each user has their own API key within their Toggl account. We could bind these keys to the Resource (Employee or Vendor Record), and start the connection there. Once we made the connection, we were ready take it to the next step.
Syncing the Prospect / Customer
The Toggl platform has the notion of “Client” which is associated with the Project construct in their platform. We needed to sync our Prospects / Customers with Toggl prior to creating Projects in NetSuite so all things can land complete and connected on the other side.
We created a custom field (Checkbox) to enable the integration call, and another custom field (Free Form Text) to hold the Toggl ID. (see below)
We set the “Sync to Toggl” checkbox via workflow to trigger the integration call, and upon Save, it calls out to create the “Client” in Toggl and return the ID in the “Toggl ID” field. Now the entities are synced!
Syncing the Project
Once the client is synced up, we were now able to initiate projects in NetSuite and perform a similar function to populate the Project record in Toggl. Toggl uses the notion of Projects within their platform, so this was an intuitive choice, and the Projects in Toggl can support specific teams or resources to be associated to the project.
Once the Project is saved in NetSuite, the Project is created in Toggl and the unique ID is returned to the NetSuite record. This builds the bridge between the two systems “Project” construct.
Ready to Go in Toggl
Now we’re synced up with the Resource, the Client, and the Project, so we can get to work and use the Toggl UI to track our time. As shown below, you can see the exact Project name and client within the Toggl application, and any time logged to the activities is being tracked against that synced project record.
Project Task Integration
Not everyone uses Projects in NetSuite in the same manner, and while being synced at the Project top level may suffice for many, we also had the need to sync our individual Project Tasks. In the same manner as above, we also put forth a Project Task synchronization in place so we can be more finite in our time allocations on Projects containing individual tasks or that were built from a Project Template.
Toggl also supports tasks within a Project as well, so we were able to build a 1:1 connection between the NetSuite Project Task and the Toggl Project Task. Here’s an example of a Task : Project would look like when searched:
Hands Off Timesheet Generation!
Once all of the time entries are logged in Toggl for the week, the users can review and make adjustments prior to the scheduled routine that will populate NetSuite Timesheets on behalf of the user.
Every Monday there is a scheduled script to synchronize all of the Toggl time to the NetSuite timesheet automatically. This means that every week our integration will automatically populate NetSuite timesheets complete with Task, Project, and Client definition, and then the description authored will populate the “Memo” field on the time entry.
This sets up time entries for turnkey Invoicing that tie back to all of the proper definitions within the project.
If you’re a services company or individual working with time tracking and NetSuite, we would love to hear what you’re doing to maximize efficiency. Get in touch with us, and join the conversation.