My Hours
My Hours is a project time-tracking solution designed to manage performance and efficiency.
Data integration: Skyvia supports importing data to and from My Hours, exporting My Hours data to CSV files, and replicating My Hours data to relational databases.
Backup: Skyvia Backup does not support My Hours.
Query: Skyvia Query supports My Hours.
Establishing Connection
Enter your username and password to create a connection to My Hours.
Additional Connection Parameters
Suppress Extended Requests
When querying multiple records, the My Hours API returns only part of the fields for some objects. Skyvia performs additional extended requests to query the values of missing fields. Skyvia performs such API requests for each record of an object. However, this can decrease performance and significantly increase the number of API calls used.
The additional fields are the following:
OBJECT | FIELD |
---|---|
TeamMembers | CanOnlyManageTeam, CanEditLogsForOthers, CanApproveLogsForOthers, CanManageProjects, CanManageLaborCostsForOthers, CanManageBillableRatesAndBudgets, Approved, AssignToFutureProjects, FirstLogDate, Notes |
You can select the Suppress Extended Requests checkbox to reduce the number of API calls.
Connector Specifics
Object Peculiarities
TimeLogs
To query data from this object, use filters by the DateFrom or/and DateTo fields. Otherwise, a query will return an empty result. If you filter only by the DateTo field, the query will return all time logs for dates before the specified one.
When importing data to this object, map either the StartTime and EndTime fields or the LogDuration field.
Dashboard* Objects
Skyvia represents the Dashboard as four separate objects depending on the reporting group: DashboardProjectTasks, DashboardTasks, DashboardClientProjects, DashboardTeamMembers. Use filters by the DateFrom or/and DateTo fields to query data from these objects. Otherwise, a query will return an empty result.
IncompletedTasks
When you import data to this object, consider the following. Map the BudgetValue field if the project budget is Task-based. Map the Rate field if your project’s invoice method is Task-based.
Clients
The ContactPhone and Address fields are designed for mapping when performing INSERT and UPDATE operations. The TaxName, TaxValue, and TaxNumber are intended for mapping when performing the UPDATE operation.
TeamMembers
The fields UpdateUserRateOnProjects, UpdateUserBillableRateOnProjects, ChangedFromDateLaborRate, and ChangedFromDateBillableRate are designed for mapping when performing the UPDATE operation. They return empty values when querying.
Incremental Replication and Synchronization
Skyvia supports Replication with Incremental Updates for the Projects object only. Skyvia detects only new records for this object.
Skyvia doesn’t support Synchronization for My Hours.
DML Operations Support
My Hours objects support the following DML operations.
Operation | Object |
---|---|
INSERT, UPDATE | Clients, IncompletedTasks, Projects, Teammembers |
INSERT, DELETE | TimeLogs |
INSERT | Tags |
Stored Procedures
Skyvia represents part of the supported My Hours features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.
StartNewTimer
To start a new timer for the current user, use the following command.
call StartNewTimer(:projectId,:taskId,:note,:date,:start,:billable,:expense)
PARAMETER NAME | DESCRIPTION |
---|---|
ProjectId | The ID of the project |
TaskId | The ID of the task |
Note | Optional description |
Date | Timer Date in UTC with timezone info |
Start | Timer start in ISO8601 with date and time in UTC with timezone info |
Billable | Optional. Boolean. The default value is true when the assigned project is set as billable. You can set the billable parameter as false when needed. |
Expense | Optional. Integer. |
StopTimer
To stop the running timer for a current user, use the following command.
call StopTimer(:logId, :end)
PARAMETER NAME | DESCRIPTION |
---|---|
LogId | The ID of the time log |
End | The moment of timer stop in ISO8601 with date and time in UTC with timezone info |
EditTimelog
Use the following command to modify the existing time log.
call EditTimelog(:logId, :userId, :projectId, :taskId, :note, :date, :start, :end, :billable, :expense)
Leaving any of the parameters empty will remove their value.
PARAMETER NAME | DESCRIPTION |
---|---|
LogId | The ID of the log |
UserId | The logged-in user ID |
ProjectId | The ID of the project |
TaskId | The ID of the task |
Note | Description |
Date | Timer Date in UTC with timezone info |
Start | Timer start in ISO8601 with date and time in UTC with timezone info |
End | The moment of timer stop in ISO8601 with date and time in UTC with timezone info |
Billable | Boolean. The default value is true when the assigned project is set as billable. You can set the billable parameter as false when needed. |
Expense | Integer |
ArchiveProject
To archive the project, use the following command.
call ArchiveProject(:projectIds)
PARAMETER NAME | DESCRIPTION |
---|---|
ProjectIds | The list of project IDs in the array format, for example [123,456,789] |
CopyProject
To create a project based on an existing project, use the following command.
call CopyProject(:projectId)
ArchiveTask
To archive the task, use the following command.
call ArchiveTask(:projectId,:projectTaskId)
AssignMemberToProject
To add the existing user to the specific project, use the command
call AssignMemberToProject(:projectId,:userId)
ArchiveTeamMember
To archive the user, use the command
call ArchiveTeamMember(:userId)
Supported Actions
Skyvia supports all the common actions for My Hours.