QuickBooks Time Component
Manage Employee Time Tracking within Intuit QuickBooks Time
Component key: quickbooks-time · · Changelog ↓Description
QuickBooks Time is an employee time tracking solution from Intuit. The QuickBooks Time component supports managing users, job codes, job code assignments, and timesheets.
API Documentation
This component was built using the QuickBooks Time (TSheets) REST API.
Connections
OAuth 2.0
key: oauthQuickBooks Time uses OAuth 2.0 Authorization Code authentication. An OAuth application must be created in the QuickBooks Time developer portal before configuring this connection.
Prerequisites
- A QuickBooks Time (TSheets) account with administrator access
- An OAuth application registered in the QuickBooks Time developer portal
Setup Steps
- Navigate to the QuickBooks Time developer portal and create a new OAuth application
- Configure the application:
- Redirect URI:
https://oauth2.prismatic.io/callback
- Redirect URI:
- Copy the Client ID and Client Secret from the application settings
Configure the Connection
- Client ID: Enter the Client ID from the OAuth application
- Client Secret: Enter the Client Secret from the OAuth application
| Input | Notes | Example |
|---|---|---|
| Authorize URL | The OAuth 2.0 Authorization URL for Quickbooks Time | https://rest.tsheets.com/api/v1/authorize |
| Client ID | Client Identifier of your app for Quickbooks Time | |
| Client Secret | Client Secret of your app for Quickbooks Time | |
| Scopes | Space separated OAuth 2.0 permission scopes for Quickbooks Time | |
| Token URL | The OAuth 2.0 Token URL for Quickbooks Time | https://rest.tsheets.com/api/v1/grant |
Triggers
New Records
Checks for new timesheets, users, or job codes in QuickBooks Time on a configured schedule. | key: pollChangesTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Resource Type | The type of resource to poll for new records. | |
| Show New Records | Include newly created records in trigger results. | true |
This trigger polls the QuickBooks Time API for new records on a scheduled basis.
How It Works
- The trigger runs on the configured schedule
- It fetches records from QuickBooks Time for the selected resource type — for Timesheets, a
start_dateparameter derived from the last poll time is passed as an optimization to limit the result set - New records are identified by comparing returned IDs against the set of known IDs from previous polls
- The trigger updates its internal state after each poll
Configuration
Configure the following inputs:
- Connection: The QuickBooks Time connection used to authenticate API requests
- Resource Type: The type of records to monitor — Timesheets, Users, or Job Codes
- Show New Records: When enabled, includes newly created records in the results. Defaults to
true
Returned Data
The trigger returns an object with a created array containing new records detected since the last poll. No updated array is returned — this trigger detects additions only.
Example Response
{
"data": {
"created": [
{
"id": 135288482,
"user_id": 317046,
"jobcode_id": 18080900,
"start": "2024-01-16T08:00:00-06:00",
"end": "2024-01-16T17:00:00-06:00",
"duration": 32400,
"date": "2024-01-16",
"tz": -6,
"type": "regular",
"on_the_clock": false,
"created": "2024-01-16T17:01:12-06:00",
"last_modified": "2024-01-16T17:01:12-06:00"
}
]
}
}
Notes
- The first poll establishes a baseline — no records are returned on the initial execution. Subsequent polls detect additions against that baseline
- For Timesheets, the
start_datefilter is applied as a query optimization, but change detection still relies on ID comparison rather than timestamps - Update detection is not supported for any resource type — only new records are returned
- Refer to the QuickBooks Time API documentation for details on available fields per resource type
Data Sources
Select Job Code
Select a job code from a list of job codes. | key: selectJobCode | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"result": [
{
"label": "Development",
"key": "111"
},
{
"label": "Marketing",
"key": "222"
}
]
}
Select Job Code Assignment
Select a job code assignment from a list of job code assignments. | key: selectJobCodeAssignment | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"result": [
{
"label": "1001",
"key": "1001"
},
{
"label": "1002",
"key": "1002"
}
]
}
Select Time Sheet
Select a timesheet from a list of timesheets. | key: selectTimeSheet | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"result": [
{
"label": "5001",
"key": "5001"
},
{
"label": "5002",
"key": "5002"
}
]
}
Select User
Select a user from a list of users. | key: selectUser | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"result": [
{
"label": "Jane Smith",
"key": "12345"
},
{
"label": "John Doe",
"key": "67890"
}
]
}
Actions
Create Timesheet
Creates a Timesheet | key: createTimesheet
| Input | Notes | Example |
|---|---|---|
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| End Date | End time of the timesheet, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). Time should reflect the user's local time. | YYYY-MM-DDThh:mm:ss±hh:mm |
| User ID | The Id of the record to modify | |
| Jobcode ID | The Jobcode Id | |
| Start Date | Start time of the timesheet, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). Time should reflect the user's local time. | YYYY-MM-DDThh:mm:ss±hh:mm |
Create User
Creates a User from the provided data | key: createUser
| Input | Notes | Example |
|---|---|---|
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| First Name | First name of the user | |
| Last Name | Last name of the user | |
| Username | Username of the user |
Delete Timesheet
Deletes a Timesheet | key: deleteTimeSheet
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Job Code IDs | A comma separated list of Job Code Ids | 123,456,789 |
Get Job Code Assignments
Gets a list of Job Codes and their associated Users | key: getJobCodeAssignments
| Input | Notes | Example |
|---|---|---|
| Active | 'yes', 'no', or 'both'. Default is 'yes' | |
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| Page | Represents the page of results you'd like to retrieve. Default is 1. | |
| Per Page | Represents how many results you'd like to retrieve per request (page). Default is 50. Max is 50 | |
| User IDs | A comma separated list of User Ids to filter on | 123,456,789 |
Get Job Codes
Gets a list of Job Codes | key: getJobCodes
| Input | Notes | Example |
|---|---|---|
| Active | 'yes', 'no', or 'both'. Default is 'yes' | |
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| Page | Represents the page of results you'd like to retrieve. Default is 1. | |
| Per Page | Represents how many results you'd like to retrieve per request (page). Default is 50. Max is 50 |
Get Time Sheets
Gets a list of Time Sheets | key: getTimeSheets
| Input | Notes | Example |
|---|---|---|
| Active | 'yes', 'no', or 'both'. Default is 'yes' | |
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| End Date | YYYY-MM-DD formatted date | |
| Job Code IDs | A comma separated list of Job Code Ids to filter on | 123,456,789 |
| Page | Represents the page of results you'd like to retrieve. Default is 1. | |
| Per Page | Represents how many results you'd like to retrieve per request (page). Default is 50. Max is 50 | |
| Start Date | YYYY-MM-DD formatted date | |
| User IDs | A comma separated list of User Ids to filter on | 123,456,789 |
Get Users
Gets a list of Users with optional filters | key: getUsers
| Input | Notes | Example |
|---|---|---|
| Active | 'yes', 'no', or 'both'. Default is 'yes' | |
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| Page | Represents the page of results you'd like to retrieve. Default is 1. | |
| Per Page | Represents how many results you'd like to retrieve per request (page). Default is 50. Max is 50 |
Update Timesheet
Updates a Timesheet | key: updateTimesheet
| Input | Notes | Example |
|---|---|---|
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| End Date | End time of the timesheet, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). Time should reflect the user's local time. | |
| Jobcode ID | The Jobcode Id | |
| Start Date | Start time of the timesheet, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). Time should reflect the user's local time. | |
| Timesheet ID | The Id of the record to modify |
Update User
Updates a specified User | key: updateUser
| Input | Notes | Example |
|---|---|---|
| Additional Query Parameters | Additional query parameters to be provided for use in filtering result sets. For example, when filtering users it is possible to provide 'usernames' as the key and a comma separated list of one or more usernames to filter on. | |
| Connection | ||
| ID | The Id of the record to modify | |
| Username | Username of the user |
Changelog
2026-04-21
Added New Records polling trigger that checks for new timesheets, users, or job codes in QuickBooks Time on a configured schedule
2026-04-07
Added global debug support across all actions for improved troubleshooting
2026-02-26
Added inline data sources for users, job codes, job code assignments, and timesheets to enable dynamic dropdown selection