My Hours (Preview)
Track time and manage projects, tasks, clients, and tags with dynamic pickers. This connector exposes endpoints for creating and finding entities.
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
| Power Apps | Premium | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | My Hours |
| URL | https://myhours.com |
| support@myhours.com |
| Connector Metadata | |
|---|---|
| Publisher | Spica International |
| Website | https://myhours.com |
| Privacy policy | https://myhours.com/legal/personal-data-processing-addendum-for-my-hours-cloud-services |
| Categories | Productivity |
My Hours - Connector Introduction
Track time and manage projects, tasks, clients, and tags using the My Hours connector.
Authentication
Type: API key (header)
When creating a connection, enter the full value in the single field named Authorization using this exact format:
Example:
apikey 123abcXYZ
The connector sends this value as the Authorization header on every request.
Where to get the key: From your My Hours account settings. Create or copy an API key. Keep it secret and rotate it if exposed.
Supported actions
- Create Client – Create a new client.
- Find Client by Name – Return clients that match the provided name.
- Create Project – Create a new project.
- Find Project by Name – Find a project by name.
- Add Task to Project – Create a task on a selected project.
- Find Task by Name – Find a project task by name and project ID.
- Create Tag – Create a new tag (with hex color).
- Find Tag by Name – Find a tag by name.
- Create Time Log – Create a new time log.
- Get Time Logs – Retrieve detailed activity/time logs for a date range.
Supported triggers
- When a new Project is created – Fires when a new project appears.
- When a new Task is created – Fires when a new project task appears.
- When a new Time Log is created – Fires when a new time log appears.
Usage notes & limits
- Authorization format – The connection requires the literal prefix
apikeyfollowed by your key. If you omit the prefix or add extra characters, requests may fail with 400 or 401. - Date/time formats – Dates are YYYY-MM-DD. Date/time values are ISO 8601 (e.g.
2025-09-05T08:30:00Zor a local offset). - Creating time logs – Provide either
duration(seconds) or bothstartandend. Supplying all three is invalid. - Dynamic pickers – Project, Task, Tag, and User fields use dynamic lists; ensure your account has permission to read those entities or the lists may be empty.
- Environment – Only the production API host is supported:
https://api2.myhours.com.
Error handling
The connector returns standard HTTP status codes:
| Code | Meaning | Typical causes |
|---|---|---|
| 200 | Success | Read/list operations. |
| 201 | Created | Successful create operations. |
| 400 | Bad request | Missing/invalid inputs, wrong header format, conflicting body fields. |
| 500 | Server error | Temporary backend issue or unexpected error. |
Troubleshooting
- Verify the Authorization value uses the exact
apikey YOUR_API_KEYformat. - Check required fields are present and valid.
- For Create Time Log, confirm you passed either
durationor (startandend).
Change log
- 1.0.0 – Initial submission for certification.
Support
- Website: https://myhours.com/
- Email: support@myhours.com
Creating a connection
The connector supports the following authentication types:
| Default | Parameters for creating connection. | All regions | Not shareable |
Default
Applicable: All regions
Parameters for creating connection.
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
| Name | Type | Description | Required |
|---|---|---|---|
| Authorization | securestring | The Authorization for this api | True |
Throttling Limits
| Name | Calls | Renewal Period |
|---|---|---|
| API calls per connection | 100 | 60 seconds |
Actions
| Add Task to Project |
Create a task on a selected project. |
| Create Client |
Create a new client record. |
| Create Project |
Create a new project. |
| Create Tag |
Create a new tag. |
| Create Time Log |
Create a Time Log. Either the field 'duration' or the fields 'start time' and 'end time' should be filled out. In case of all three being filled you will get an error |
| Find Client by Name |
Return clients that match the provided name. |
| Find Project by Name |
Find a project by name. |
| Find Tag by Name |
Find a tag by its name. |
| Find Task by Name |
Find a project task by name and project ID. |
| Get Time Logs |
Get detailed activity or time logs for a date range. |
Add Task to Project
Create a task on a selected project.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Project ID
|
projectId | True | integer |
Project ID. |
|
List Name
|
listName | string |
Tasks list name. |
|
|
Name
|
name | True | string |
Task name. |
|
Description
|
description | string |
Description. |
Returns
- Body
- ProjectTask
Create Client
Create a new client record.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Name
|
Name | True | string |
Client name. |
Returns
- Body
- Client
Create Project
Create a new project.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Name
|
name | True | string |
Project name. |
|
Client ID
|
clientId | integer |
Client ID. |
|
|
Notes
|
notes | string |
Notes. |
|
|
Assigned User
|
autoAssignUserId | integer |
User assigned to the project. |
Returns
- Body
- Project
Create Tag
Create a new tag.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Tag name
|
name | True | string |
Tag name. |
|
Hex Color
|
hexColor | True | string |
Hex color in |
Returns
- Body
- Tag
Create Time Log
Create a Time Log. Either the field 'duration' or the fields 'start time' and 'end time' should be filled out. In case of all three being filled you will get an error
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Date
|
date | True | date |
Date in YYYY-MM-DD format. |
|
Start time
|
start | date-time |
Start time in UTC or local ISO 8601 format. |
|
|
End time
|
end | date-time |
End time in UTC or local ISO 8601 format. |
|
|
Duration
|
duration | integer |
Duration in seconds. |
|
|
Description
|
Note | string |
Note. |
|
|
Project ID
|
ProjectId | integer |
Project ID. |
|
|
Task ID
|
TaskId | integer |
Task ID. |
|
|
Tag ID
|
TagId | integer |
Tag ID. |
Returns
- Body
- TimeLog
Find Client by Name
Return clients that match the provided name.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Client name
|
clientName | True | string |
Client name with exact or partial match. |
Returns
- response
- array of Client
Find Project by Name
Find a project by name.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Project name
|
projectName | True | string |
Project name. |
Returns
- Body
- Project
Find Tag by Name
Find a tag by its name.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Tag name
|
tagName | True | string |
Tag name. |
Returns
- Body
- Tag
Find Task by Name
Find a project task by name and project ID.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Task name
|
projectTaskName | True | string |
Task name. |
|
Project ID
|
projectId | True | integer |
Project ID. |
Returns
- Body
- ProjectTask
Get Time Logs
Get detailed activity or time logs for a date range.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Date from
|
dateFrom | True | date |
Start date in YYYY-MM-DD format. |
|
Date to
|
dateTo | True | date |
End date in YYYY-MM-DD format. |
Returns
Triggers
| When a new Project is created |
Trigger when a new project is created. |
| When a new Task is created |
Trigger when a new project task is created. |
| When a new Time Log is created |
Trigger when a new time log is created. |
When a new Project is created
When a new Task is created
When a new Time Log is created
Definitions
TimeSlice
| Name | Path | Type | Description |
|---|---|---|---|
|
id
|
id | integer | |
|
duration
|
duration | integer | |
|
startTime
|
startTime | string | |
|
endTime
|
endTime | string | |
|
running
|
running | boolean | |
|
deleted
|
deleted | boolean |
Attachment
| Name | Path | Type | Description |
|---|---|---|---|
|
fileName
|
fileName | string | |
|
fileUrl
|
fileUrl | string | |
|
id
|
id | integer |
Tag
| Name | Path | Type | Description |
|---|---|---|---|
|
name
|
name | string | |
|
hexColor
|
hexColor | string | |
|
archived
|
archived | boolean | |
|
dateArchived
|
dateArchived | string | |
|
id
|
id | integer |
Client
| Name | Path | Type | Description |
|---|---|---|---|
|
name
|
name | string | |
|
contactName
|
contactName | string | |
|
contactEmail
|
contactEmail | string | |
|
contactPhone
|
contactPhone | string | |
|
address
|
address | string | |
|
customId
|
customId | string | |
|
customFieldValues
|
customFieldValues | string | |
|
id
|
id | integer |
Project
| Name | Path | Type | Description |
|---|---|---|---|
|
invoiceMethod
|
invoiceMethod | integer | |
|
rate
|
rate | float | |
|
budgetType
|
budgetType | integer | |
|
budgetValue
|
budgetValue | integer | |
|
budgetAlertPercent
|
budgetAlertPercent | integer | |
|
notes
|
notes | string | |
|
approved
|
approved | boolean | |
|
roundType
|
roundType | integer | |
|
roundInterval
|
roundInterval | integer | |
|
firstLogDate
|
firstLogDate | string | |
|
budgetTarget
|
budgetTarget | integer | |
|
budgetPeriodType
|
budgetPeriodType | string | |
|
startDate
|
startDate | string | |
|
dueDate
|
dueDate | string | |
|
dateCreated
|
dateCreated | string | |
|
createdByUserId
|
createdByUserId | integer | |
|
createdByUserName
|
createdByUserName | string | |
|
billable
|
billable | boolean | |
|
customFieldValues
|
customFieldValues | string | |
|
clientId
|
clientId | integer | |
|
clientName
|
clientName | string | |
|
clientCustomId
|
clientCustomId | string | |
|
name
|
name | string | |
|
archived
|
archived | boolean | |
|
customId
|
customId | string | |
|
id
|
id | integer |
ProjectTask
| Name | Path | Type | Description |
|---|---|---|---|
|
name
|
name | string | |
|
orderNo
|
orderNo | integer | |
|
description
|
description | string | |
|
completed
|
completed | boolean | |
|
archived
|
archived | boolean | |
|
startDate
|
startDate | string | |
|
dueDate
|
dueDate | string | |
|
rate
|
rate | float | |
|
billableByDefault
|
billableByDefault | boolean | |
|
budgetValue
|
budgetValue | float | |
|
budgetSpent
|
budgetSpent | float | |
|
budgetSpentPercentage
|
budgetSpentPercentage | float | |
|
projectBudgetType
|
projectBudgetType | integer | |
|
projectTaskUserIds
|
projectTaskUserIds | array of integer | |
|
customFieldValues
|
customFieldValues | string | |
|
customId
|
customId | string | |
|
projectCustomId
|
projectCustomId | string | |
|
clientCustomId
|
clientCustomId | string | |
|
id
|
id | integer |
TimeLog
| Name | Path | Type | Description |
|---|---|---|---|
|
note
|
note | string | |
|
date
|
date | string | |
|
duration
|
duration | integer | |
|
userName
|
userName | string | |
|
projectName
|
projectName | string | |
|
taskName
|
taskName | string | |
|
clientName
|
clientName | string | |
|
running
|
running | boolean | |
|
startTime
|
startTime | string | |
|
endTime
|
endTime | string | |
|
times
|
times | array of TimeSlice | |
|
status
|
status | integer | |
|
projectId
|
projectId | integer | |
|
taskId
|
taskId | integer | |
|
billable
|
billable | boolean | |
|
expense
|
expense | float | |
|
userId
|
userId | integer | |
|
billableRate
|
billableRate | float | |
|
billableAmount
|
billableAmount | float | |
|
laborRate
|
laborRate | float | |
|
laborCost
|
laborCost | float | |
|
customField1Name
|
customField1Name | string | |
|
customField2Name
|
customField2Name | string | |
|
customField3Name
|
customField3Name | string | |
|
customField1Value
|
customField1Value | string | |
|
customField2Value
|
customField2Value | string | |
|
customField3Value
|
customField3Value | string | |
|
tags
|
tags | string | |
|
durationInHours
|
durationInHours | float | |
|
id
|
id | integer | |
|
tagsData
|
tagsData | array of Tag | |
|
attachments
|
attachments | array of Attachment |
ActivityLogRow
| Name | Path | Type | Description |
|---|---|---|---|
|
logId
|
logId | integer | |
|
userId
|
userId | integer | |
|
date
|
date | string | |
|
teamsNames
|
teamsNames | string | |
|
userName
|
userName | string | |
|
userCustomId
|
userCustomId | string | |
|
clientId
|
clientId | integer | |
|
clientName
|
clientName | string | |
|
clientCustomId
|
clientCustomId | string | |
|
projectId
|
projectId | integer | |
|
projectName
|
projectName | string | |
|
projectCustomId
|
projectCustomId | string | |
|
projectStartDate
|
projectStartDate | string | |
|
projectDueDate
|
projectDueDate | string | |
|
projectBudgetType
|
projectBudgetType | string | |
|
projectBudgetTarget
|
projectBudgetTarget | string | |
|
projectBudgetPeriodType
|
projectBudgetPeriodType | string | |
|
projectBudgetValue
|
projectBudgetValue | integer | |
|
taskListName
|
taskListName | string | |
|
taskId
|
taskId | integer | |
|
taskName
|
taskName | string | |
|
taskCustomId
|
taskCustomId | string | |
|
taskStartDate
|
taskStartDate | string | |
|
taskDueDate
|
taskDueDate | string | |
|
taskCompleted
|
taskCompleted | boolean | |
|
userCustomFieldValues
|
userCustomFieldValues | string | |
|
projectCustomFieldValues
|
projectCustomFieldValues | string | |
|
clientCustomFieldValues
|
clientCustomFieldValues | string | |
|
taskCustomFieldValues
|
taskCustomFieldValues | string | |
|
tags
|
tags | string | |
|
rate
|
rate | float | |
|
billable
|
billable | boolean | |
|
inLockedPeriod
|
inLockedPeriod | boolean | |
|
billableAmount
|
billableAmount | float | |
|
amount
|
amount | float | |
|
laborCost
|
laborCost | float | |
|
laborRate
|
laborRate | float | |
|
logDuration
|
logDuration | integer | |
|
logDurationBillable
|
logDurationBillable | integer | |
|
laborDuration
|
laborDuration | integer | |
|
startEndTime
|
startEndTime | string | |
|
expense
|
expense | float | |
|
billableExpense
|
billableExpense | float | |
|
cost
|
cost | float | |
|
note
|
note | string | |
|
status
|
status | string | |
|
invoiceId
|
invoiceId | integer | |
|
invoiced
|
invoiced | boolean | |
|
billableHours
|
billableHours | integer | |
|
billableHoursLogBillable
|
billableHoursLogBillable | integer | |
|
laborHours
|
laborHours | integer | |
|
customField1
|
customField1 | integer | |
|
customField2
|
customField2 | integer | |
|
customField3
|
customField3 | integer | |
|
balance
|
balance | integer | |
|
monthOfYear
|
monthOfYear | string | |
|
weekNo
|
weekNo | integer | |
|
weekOfYear
|
weekOfYear | string | |
|
teams
|
teams | array of string | |
|
running
|
running | boolean | |
|
startTime
|
startTime | string | |
|
endTime
|
endTime | string | |
|
times
|
times | array of TimeSlice | |
|
tagsData
|
tagsData | array of Tag | |
|
attachments
|
attachments | array of Attachment | |
|
roundType
|
roundType | string | |
|
invoicedAmount
|
invoicedAmount | float | |
|
uninvoicedAmount
|
uninvoicedAmount | float |
ActivityReportResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
body
|
body | array of ActivityLogRow |
TriggerLogsEnvelope
| Name | Path | Type | Description |
|---|---|---|---|
|
logs
|
logs | array of TimeLog |
TriggerProjectsEnvelope
| Name | Path | Type | Description |
|---|---|---|---|
|
projects
|
projects | array of object | |
|
clientId
|
projects.clientId | integer | |
|
clientName
|
projects.clientName | string | |
|
clientCustomId
|
projects.clientCustomId | string | |
|
name
|
projects.name | string | |
|
customId
|
projects.customId | string | |
|
id
|
projects.id | integer |
TriggerProjectTasksEnvelope
| Name | Path | Type | Description |
|---|---|---|---|
|
projectTasks
|
projectTasks | array of object | |
|
projectId
|
projectTasks.projectId | integer | |
|
listName
|
projectTasks.listName | string | |
|
listOrderNo
|
projectTasks.listOrderNo | integer | |
|
name
|
projectTasks.name | string | |
|
orderNo
|
projectTasks.orderNo | integer | |
|
description
|
projectTasks.description | string | |
|
rate
|
projectTasks.rate | float | |
|
budgetValue
|
projectTasks.budgetValue | float | |
|
projectBudgetType
|
projectTasks.projectBudgetType | integer | |
|
customId
|
projectTasks.customId | string | |
|
billableByDefault
|
projectTasks.billableByDefault | boolean | |
|
projectCustomId
|
projectTasks.projectCustomId | string | |
|
clientCustomId
|
projectTasks.clientCustomId | string | |
|
id
|
projectTasks.id | integer |