Toggl integration summary

Stitch’s Toggl integration replicates data using the Toggl API v8. Refer to the Schema section for a list of objects available for replication.

Toggl feature snapshot

A high-level look at Stitch's Toggl (v1.0) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release Status Released Supported By

Singer Community

Stitch Plan

Free

Singer GitHub Repository

Toggl Repository

DATA SELECTION
Table Selection

Supported

Column Selection

Supported

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Unsupported

Table-level Reset

Unsupported

Configurable Replication Methods

Unsupported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Toggl

Toggl setup requirements

To set up Toggl in Stitch, you need:

  • Admin access to the workspaces you want to replicate time entry data from, if replicating from multiple workspaces. Stitch is only able to access the same data as the user whose API token is used to authenticate the integration. Toggl’s API limits retrieving time entry data to the user’s own time entries and the time entries in a workspace where they are also an Admin.

Step 1: Retrieve your Toggl API token

  1. Sign into your Toggl account.
  2. Click the Workspace menu in the lower left corner.
  3. Click Profile settings.
  4. Locate the API token field, which is highlighted in the image below:

    The API token field, highlighted in the Toggl Profile Settings page

  5. Copy the API token.

Keep this handy - you’ll need it to complete the next step.

Step 2: Add Toggl as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Toggl icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Toggl” would create a schema called stitch_toggl in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the API Token field, paste the API token you retrieve in Step 1.
  6. In the Trailing Days field, enter the number of days Stitch should use as an attribution window when replicating time entry data. Note: This is only applicable to the time_entries table.

    For example: If this value is 5, Stitch will replicate the past five days’ worth of data for the time_entries table during every replication job.

Step 3: Define the historical sync

The Sync Historical Data setting will define the starting date for your Toggl integration. This means that:

  • For tables using Incremental Replication, data equal to or newer than this date will be replicated to your data warehouse.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Toggl’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Toggl integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 5: Set tables and columns to replicate

To complete the setup, you’ll need to select the tables and columns you want to replicate to your data warehouse.

Check out the Schema section to learn more about the available tables in Toggl and how they replicate.

  1. In the list of tables that displays - or in the Tables to Replicate tab, if you skipped this step during setup - locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.

Note: If you change these settings while a replication job is still in progress, they will not be used until the next job starts.

Initial and historical replication jobs

After you finish setting up Toggl, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Toggl replication

Replicating time entry data

The time_entries table uses the Trailing Days setting as an attribution window during replication. This means that the number entered into the Trailing Days field in the Integration Settings page is the number of days Stitch will query time entry data for during every replication job.

For example: If you set Trailing Days to 5, Stitch will query for and replicate the past five days’ worth of data during every replication job for the time_entries table.

While time_entries is replicated incrementally - in that only data from the number of trailing days is replicated during each job - a high number of days being used as the attribution window can increase your row usage.


Toggl table schemas

Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace clients

The clients table contains info about the clients in your Toggl account.

id
INTEGER

The client ID.

Reference:

at
DATE-TIME

The date and time the client was last updated.

cur
STRING

hrate
INTEGER

The hourly rate for the client.

name
STRING

The name of the client.

notes
STRING

Notes for the client.

wid
INTEGER

The workspace ID where the client is used.

Reference:


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace groups

The groups table contains info about the groups in your Toggl account.

id
INTEGER

The group ID.

at
DATE-TIME

The date and time the group was last updated.

name
STRING

The name of the group.

wid
INTEGER

The workspace ID where the group is used.

Reference:


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace projects

The projects table contains info about the projects in your Toggl account.

id
INTEGER

The project ID.

Reference:

at
DATE-TIME

The date and time the project was last updated.

active
BOOLEAN

Indicates whether the project is archived or not.

billable
BOOLEAN

Indicates whether the project is billable or not. Note: This is only applicable to pro workspaces.

cid
INTEGER

The client ID.

Reference:

is_private
BOOLEAN

Indicates whether the project is accessible only by project users or for all workspace users.

name
STRING

The name of the project.

wid
INTEGER

The workspace ID where the project is saved.

Reference:


Replication Method :

Full Table

Primary Key :

id

API endpoint :

Get workspace tags

The tags table contains info about the tags in your Toggl account.

id
INTEGER

The tag ID.

name
STRING

The name of the tag.

wid
INTEGER

The workspace ID where the tag is used.

Reference:


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace tasks

The tasks table contains info about the tasks in your Toggl account.

Note: Tasks are only available for Toggl starter and other paid workspaces.

id
INTEGER

The task ID.

Reference:

at
DATE-TIME

The date and time the task was last updated.

active
BOOLEAN

Indicates if the task is completed or not.

estimated_seconds
INTEGER

The estimated duration of the task, in seconds.

name
STRING

The name of the task.

pid
INTEGER

The ID of the project associated with the task.

Reference:

uid
INTEGER

The ID of the user who is assigned to the task.

wid
INTEGER

The ID of the workspace associated with the task.


Replication Method :

Key-based Incremental

Replication Key :

updated

Primary Key :

id

API endpoint :

Get detailed report

The time_entries table contains info about time entries. Note: This table uses an attribution window to replicate data. Refer to the Replicating time entry data section for more info.

Time entries and user permissions

The time entries Stitch replicates are dependent upon the user whose API token is used to create the integration in Stitch. Stitch is only able to access the same data as the user whose token is used.

For example: If the user is unable to access a workspace, or is not an Admin in that workspace, Stitch will not be able to replicate time entry data for those workspaces. In this case, only the user’s own time entries will be accessible by Stitch.

If data from a workspace is missing, verify that the user whose API token is being used in Stitch has Admin permissions in that workspace.

id
INTEGER

The time entry ID.

updated
DATE-TIME

The date and time the time entry was last updated.

billable
NUMBER

The billed amount for the time entry.

client
STRING

The client name for which the time entry was recorded.

cur
STRING

The billable amount currency.

description
STRING

The description of the time entry.

dur
INTEGER

The time entry duration in milliseconds.

end
DATE-TIME

The end time of the time entry inISO 8601 date and time format.

is_billable
BOOLEAN

Indicates if the time entry is billable or not.

pid
INTEGER

The ID of the project associated with the time entry.

Reference:

project
STRING

The name of the project for which the time entry was recorded.

start
DATE-TIME

The start time of the time entry inISO 8601 date and time format.

tags
ARRAY

A list of tag names associated with the time entry.

value
STRING

The name of the tag.

time_entries (table), tags (attribute)

task
STRING

The task name for which the time entry was recorded.

tid
INTEGER

The ID of the task associated with the time entry.

Reference:

uid
INTEGER

The ID of the user associated with the time entry.

Reference:

use_stop
BOOLEAN

Indicates if the stop time is saved on the time entry according to the user’s personal settings.

user
STRING

The full name of the user associated with the time entry.


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace users

The users table contains info about the users in your Toggl account.

id
INTEGER

The user ID.

Reference:

at
DATE-TIME

The date and time the user was last updated.

beginning_of_week
INTEGER

The user’s beginning of the week. Possible values are:

  • 0 - Sunday
  • 1 - Monday
  • 2 - Tuesday
  • 3 - Wednesday
  • 4 - Thursday
  • 5 - Friday
  • 6 - Saturday

date_format
STRING

The date format the user uses.

default_wid
INTEGER

The ID of the user’s default workspace.

Reference:

email
STRING

The user’s email address.

fullname
STRING

The user’s full name.

image_url
STRING

The URL of the user’s profile picture.

invitation
STRING

jquery_date_format
STRING

The jQuery date format.

jquery_timeofday_format
STRING

The jQuery time of day format.

language
STRING

The user’s language.

new_blog_post
STRING

record_timeline
BOOLEAN

render_timeline
BOOLEAN

retention
INTEGER

should_upgrade
BOOLEAN

sidebar_piechart
BOOLEAN

Indicates if the user will have a pie chart shown in their sidebar in the Toggl app.

store_start_and_stop_time
BOOLEAN

Indicates whether start and stop times are saved on time entries.

timeline_enabled
BOOLEAN

timeline_experiment
BOOLEAN

timeofday_format
STRING

The formatting used for the time of day for the user.


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspace users for a workspace

The workspace_users table contains info about the users in a workspace.

id
INTEGER

The workspace user ID.

at
DATE-TIME

The date and time the workspace user was last updated.

active
BOOLEAN

Indicates if the workspace user has accepted the invitation to the workspace.

admin
BOOLEAN

Indicates if the user is a workspace admin.

email
STRING

The workspace user’s email address.

invite_url
STRING

The URL for accepting the workspace invitation, if the user hasn’t yet accepted the invitation.

name
STRING

The name of the workspace user.

uid
INTEGER

The ID of the user associated with the workspace user.

Reference:

wid
INTEGER

The ID of the workspace associated with the workspace user.

Reference:


Replication Method :

Key-based Incremental

Replication Key :

at

Primary Key :

id

API endpoint :

Get workspaces

The workspaces table contains info about the workspaces in your Toggl account.

id
INTEGER

The workspace ID.

Reference:

at
DATE-TIME

The date and time the workspace was last updated.

admin
BOOLEAN

Indicates whether the currently requesting user has admin access to the workspace.

default_currency
STRING

The default currency for the workspace.

default_hourly_rate
INTEGER

The default hourly rate for the workspace.

logo_url
STRING

The URL pointing to the workspace logo.

name
STRING

The name of the workspace.

only_admins_may_create_projects
BOOLEAN

Indicates whether only admins can create projects.

only_admins_see_billable_rates
BOOLEAN

Indicates whether only admins can see billable rates.

premium
BOOLEAN

Indicates if the workspace is a pro workspace.

rounding
INTEGER

The type of rounding used by the workspace. Possible values are:

  • -1 - Round down
  • 0 - Nearest
  • 1 - Round up

rounding_minutes
INTEGER

Round up to the nearest minute.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.