Get started with a free trial today
Already have an account? Sign in
Stitch’s Toggl integration replicates data using theToggl API v8. Refer to theSchema section for a list of objects available for replication.
A high-level look at Stitch's Toggl (v1) integration, including release status, useful links, and the features supported in Stitch.
| STITCH | |||
| Release status | Released on February 13, 2019 | Supported by | |
| Stitch plan | Standard | API availability | Available |
| Singer GitHub repository | |||
| REPLICATION SETTINGS | |||
| Anchor Scheduling | Supported | Advanced Scheduling | Supported |
| Table-level reset | Unsupported | Configurable Replication Methods | Unsupported |
| DATA SELECTION | |||
| Table selection | Supported | Column selection | Supported |
| Select all | Supported | ||
| TRANSPARENCY | |||
| Extraction Logs | Supported | Loading Reports | Supported |
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.
Verify your Toggl workspace permissions:
Your Toggl API token is specific to you. When replicating data, Stitch will only be able to access the same data as you in Toggl.
To replicate time entry data from multiple workspaces, you must be an Admin in the workspace you want to replicate data from. Verify that you have this permission in Toggl before proceeding.
Locate theAPI token field, which is highlighted in the image below:

Keep this handy - you’ll need it to complete the next step.
On the Stitch Dashboard page, click theAdd Integration button.
Click theToggl icon.
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 calledstitch_toggl in the destination.Note: Schema names cannot be changed after you save the integration.
In theTrailing 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 thetime_entries table.
For example: If this value is5, Stitch will replicate the past five days’ worth of data for thetime_entries table during every replication job.
The Sync Historical Data setting defines the starting date for your Toggl integration. This means that dataequal 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 of1 year. For a detailed look at historical replication jobs, check out theSyncing Historical SaaS Data guide.
In theReplication Frequency section, you’ll create the integration’sreplication 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:
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See theUnderstanding and Reducing Your Row Usage guide for tips on reducing your usage.
The last step is to select the tables and columns you want to replicate.Learn about the available tables for this integration.
Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.
For Toggl integrations, you can select:
Individual tables and columns
All tables and columns
Click the tabs to view instructions for each selection method.
To track a table, click thecheckbox next to the table’s name. A blue checkmark means the table is set to replicate.
To track a column, click thecheckbox next to the column’s name. A blue checkmark means the column is set to replicate.
Click theTables to Replicate tab.
In the menu that displays, clickTrack all Tables and Fields:

After you finish setting up Toggl, itsSync Status may show asPending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, aPending status indicates that Stitch is in the process of scheduling the initial replication job for the integration.This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to theAnchor Scheduling documentation for more information.
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.
Thetime_entries table uses theTrailing Days setting as an attribution window during replication. This means that the number entered into theTrailing 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 setTrailing Days to5, Stitch will query for and replicate the past five days’ worth of data during every replication job for thetime_entries table.
Whiletime_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.
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is forversion 1 of this integration.
This is the latest version of the Toggl integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs >customers), while case is maintained in PostgreSQL destinations (CusTomERs >CusTomERs). Refer to theLoading Guide for your destination for more info.
Theclients table contains info about the clients in your Toggl account.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join clients with | on |
|---|---|
| workspaces | clients.wid = workspaces.id |
| groups | clients.wid = groups.wid |
| projects | clients.wid = projects.wid clients.id = projects.cid |
| tags | clients.wid = tags.wid |
| tasks | clients.wid = tasks.wid |
| users | clients.wid = users.default_wid |
| workspace_users | clients.wid = workspace_users.wid |
at DATE-TIME |
cur STRING |
hrate INTEGER |
id INTEGER |
name STRING |
notes STRING |
wid INTEGER |
Thegroups table contains info about the groups in your Toggl account.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join groups with | on |
|---|---|
| workspaces | groups.wid = workspaces.id |
| clients | groups.wid = clients.wid |
| projects | groups.wid = projects.wid |
| tags | groups.wid = tags.wid |
| tasks | groups.wid = tasks.wid |
| users | groups.wid = users.default_wid |
| workspace_users | groups.wid = workspace_users.wid |
at DATE-TIME |
id INTEGER |
name STRING |
wid INTEGER |
Theprojects table contains info about the projects in your Toggl account.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join projects with | on |
|---|---|
| workspaces | projects.wid = workspaces.id |
| clients | projects.wid = clients.wid projects.cid = clients.id |
| groups | projects.wid = groups.wid |
| tags | projects.wid = tags.wid |
| tasks | projects.wid = tasks.wid |
| users | projects.wid = users.default_wid |
| workspace_users | projects.wid = workspace_users.wid |
active BOOLEAN |
at DATE-TIME |
billable BOOLEAN |
cid INTEGER |
id INTEGER |
is_private BOOLEAN |
name STRING |
wid INTEGER |
Thetags table contains info about the tags in your Toggl account.
Full Table | |
Primary Key | id |
| Useful links |
| Join tags with | on |
|---|---|
| workspaces | tags.wid = workspaces.id |
| clients | tags.wid = clients.wid |
| groups | tags.wid = groups.wid |
| projects | tags.wid = projects.wid |
| tasks | tags.wid = tasks.wid |
| users | tags.wid = users.default_wid |
| workspace_users | tags.wid = workspace_users.wid |
id INTEGER |
name STRING |
wid INTEGER |
Thetasks table contains info about the tasks in your Toggl account.
Note: Tasks are only available for Toggl starter and other paid workspaces.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join tasks with | on |
|---|---|
| workspaces | tasks.wid = workspaces.id |
| clients | tasks.wid = clients.wid |
| groups | tasks.wid = groups.wid |
| projects | tasks.wid = projects.wid |
| tags | tasks.wid = tags.wid |
| users | tasks.wid = users.default_wid tasks.uid = users.id |
| workspace_users | tasks.wid = workspace_users.wid |
| time_entries | tasks.id = time_entries.tid tasks.uid = time_entries.uid |
active BOOLEAN |
at DATE-TIME |
estimated_seconds INTEGER |
id INTEGER |
name STRING |
pid INTEGER |
uid INTEGER |
wid INTEGER |
Thetime_entries table contains info about time entries.Note: This table uses an attribution window to replicate data. Refer to theReplicating time entry data section for more info.
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.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated |
| Useful links |
billable NUMBER |
client STRING |
cur STRING |
description STRING |
dur INTEGER |
end DATE-TIME |
id INTEGER |
is_billable BOOLEAN |
pid INTEGER |
project STRING |
start DATE-TIME |
tags ARRAY |
task STRING |
tid INTEGER |
uid INTEGER |
updated DATE-TIME |
use_stop BOOLEAN |
user STRING |
Theusers table contains info about the users in your Toggl account.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join users with | on |
|---|---|
| workspaces | users.default_wid = workspaces.id |
| clients | users.default_wid = clients.wid |
| groups | users.default_wid = groups.wid |
| projects | users.default_wid = projects.wid |
| tags | users.default_wid = tags.wid |
| tasks | users.default_wid = tasks.wid users.id = tasks.uid |
| workspace_users | users.default_wid = workspace_users.wid |
| time_entries | users.id = time_entries.uid |
at DATE-TIME |
beginning_of_week INTEGER |
date_format STRING |
default_wid INTEGER |
STRING |
fullname STRING |
id INTEGER |
image_url STRING |
invitation STRING |
jquery_date_format STRING |
jquery_timeofday_format STRING |
language STRING |
new_blog_post STRING |
record_timeline BOOLEAN |
render_timeline BOOLEAN |
retention INTEGER |
should_upgrade BOOLEAN |
sidebar_piechart BOOLEAN |
store_start_and_stop_time BOOLEAN |
timeline_enabled BOOLEAN |
timeline_experiment BOOLEAN |
timeofday_format STRING |
Theworkspace_users table contains info about the users in a workspace.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
| Join workspace_users with | on |
|---|---|
| workspaces | workspace_users.wid = workspaces.id |
| clients | workspace_users.wid = clients.wid |
| groups | workspace_users.wid = groups.wid |
| projects | workspace_users.wid = projects.wid |
| tags | workspace_users.wid = tags.wid |
| tasks | workspace_users.wid = tasks.wid |
| users | workspace_users.wid = users.default_wid |
active BOOLEAN |
admin BOOLEAN |
at DATE-TIME |
STRING |
id INTEGER |
invite_url STRING |
name STRING |
uid INTEGER |
wid INTEGER |
Theworkspaces table contains info about the workspaces in your Toggl account.
Key-based Incremental | |
Primary Key | id |
Replication Key | at |
| Useful links |
admin BOOLEAN |
at DATE-TIME |
default_currency STRING |
default_hourly_rate INTEGER |
id INTEGER |
logo_url STRING |
name STRING |
only_admins_may_create_projects BOOLEAN |
only_admins_see_billable_rates BOOLEAN |
premium BOOLEAN |
rounding INTEGER |
rounding_minutes INTEGER |
| Related | Troubleshooting |
Did this article help? If you have questions or feedback, feel free tosubmit a pull request with your suggestions,open an issue on GitHub, orreach out to us.