Self-Hosting

Configuring integrations

In order to use QuickBooks, Microsoft Outlook and Google Calendar integrations in your self-hosted Clockify account, you’ll need to create applications on respective accounts and integrate them with Clockify.

Microsoft Outlook calendar integration #

This integration requires registration of application with the Microsoft identity platform where the new application is created with the Accounts in any organizational directory and personal Microsoft accounts option selected.

Application needs to have the following set of permissions:

  • Calendars.Read
  • Calendars.Read.Shared

After creating the application, Clockify needs to be provided with the following environment variables:

  • microsoft.redirectUrl – redirect URL as configured in the registered application
    • Ideally, it should be set to /redirect-integration relative to the selfhosted Clockify web root, i.e. https://time.examplecompany.com/redirect-integration where https://time.examplecompany.com/login is your Clockify login page
  • microsoft.clientId – Application (client) ID
  • microsoft.clientSecretgenerated client secret

During the account registration, if the Accounts in this organizational directory only option was selected, microsoft.authorityUrl environment variable needs to be set to https://login.microsoftonline.com/{tenantId}/, where tenantId corresponds to value of Directory (tenant) ID.

Google Calendar integration #

Integration requires a project on Google Cloud Console with enabled Google Calendar API and generated credentials for OAuth flow as well as configured OAuth consent screen.

After creating the application, Clockify needs to be provided with the following environment variables:

  • google.credentials – content of the generated credentials JSON file
  • google.redirectUrl – redirect URL defined when creating OAuth 2.0 client credentials
    • Ideally, it should be set to /redirect-integration relative to the selfhosted Clockify web root, i.e. https://time.examplecompany.com/redirect-integration where https://time.examplecompany.com/login is your Clockify login page

QuickBooks integration #

QuickBooks Online integration allows users to easily transform Clockify time entries into QuickBooks invoice items. In order for self-hosted Clockify instance to integrate with Intuit’s QuickBooks Online, you need to perform several steps.

Set up Intuit developer account #

  1. Register developer account on Intuit
  2. Create an app by clicking the Create an app button, then select QuickBooks Online and Payments.
  3. Fulfil all the necessary steps so that under Production section, under Keys & OAuth, there are Client ID and Client Secret available.
  4. While under Keys & OAuth section scroll down to Redirect URIs and add Clockify app URI ending with appended with /redirect-integration. For example, if Clockify app URL is https://my-self-hosted-clockify.com, redirect URI would be https://my-self-hosted-clockify.com//redirect-integration (note: https is required for Production intuit setup).

Set up Clockify variables for Intuit QuickBooks integration #

Clockify frontend, backend and QuickBooks service need to be up and running.

Clockify needs to be provided back with environment variables to integrate with QuickBooks, usually via docker-compose.yml configuration file. As mentioned, those variables’ values can be found in Intuit app Keys & OAuth section. Following is the list of needed variables:

  • quickbooks.clientId – Client ID from intuit Production app Keys & OAuth section
  • quickbooks.clientSecret – Client Secret from intuit Production app Keys & OAuth section
  • quickbooks.redirectUrl – Redirect URI

Usage and testing QuickBooks setup #

In Clockify app, log in to the workspace are the owner or admin of

  1. On left sidebar go to Settings
  2. Select Integrations and expand QuickBooks Section
  3. Click on the CONNECT TO QUICKBOOKS button

This will redirect you to the Intuit login form where you will enter your Intuit QuickBooks Online credentials. You should get the Success pop-up that Clockify is successfully connected to the QuickBooks account. Note that multiple QuickBooks Accounts can be used for connecting Clockify workspace to QuickBooks Online product. Developer account is primarily used for integrating Clockify app with QuickBooks API.

  1. Click NEXT to see synced results
  2. Click on CREATE MISSING USERS AND CUSTOMERS to create all necessary clients, projects and users so time entries could be sent and mapped correctly to the QuickBooks company

Go to detailed report, select entries and send them to QuickBooks.