# Time Doctor

## Snapshot

<table><thead><tr><th width="425">Features</th><th>Details</th></tr></thead><tbody><tr><td>Release Status</td><td>Beta version released</td></tr><tr><td>Source API Version</td><td>1.0</td></tr><tr><td>Table Selection</td><td>Yes</td></tr><tr><td>Column Selection</td><td>Yes</td></tr><tr><td>Edit Integration</td><td>Yes</td></tr><tr><td>Replication Type Selection</td><td>No</td></tr><tr><td>Authentication Parameters</td><td>Time Doctor User email<br>Time Doctor Password</td></tr><tr><td>Replication Type</td><td>Full Replication</td></tr><tr><td>Replication Key</td><td>NA</td></tr><tr><td>Suggested Replication Frequency</td><td>1 hour</td></tr></tbody></table>

## Tables/APIs supported

| Breaks        | Categories |
| ------------- | ---------- |
| Companies     | Files      |
| Notifications | Payroll    |
| Projects      | Tags       |
| Tasks         | Users      |

## Integrate Time Doctor with Daton

1. Sign in to Daton&#x20;
2. Select Time Doctor V2 from the list of Integrations&#x20;
3. Provide Integration Name, Replication Frequency, and History. Integration name would be used in creating tables for the integration and cannot be changed later&#x20;
4. Provide your Time Doctor user email and password
5. Post successful authentication, you will be prompted to choose from the list of available tables
6. Then select all required fields for each table
7. Submit the integration

## Workflow

1. Integrations would be in Pending state initially and will be moved to Active state as soon as the first job loads data successfully on to the configured warehouse
2. Users would be able to edit/pause/re-activate/delete integration anytime
3. Users can view job status and process logs from the integration details page by clicking on the integration name from the active list

## Time Doctor Data

### Breaks

Purpose: This API is used to fetch all the breaks

Source API Documentation: <https://api2.timedoctor.com/#/Breaks/getBreaks>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name   | Data Type |
| ------ | --------- |
| \_id   | STRING    |
| name   | STRING    |
| type   | STRING    |
| active | BOOLEAN   |
| public | BOOLEAN   |
| access | STRING    |
| scope  | STRING    |

### Categories

Purpose: This API is used to fetch all the used categories in the company

Source API Documentation: <https://api2.timedoctor.com/#/Categories/categories>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name   | Data Type |
| ------ | --------- |
| scope  | STRING    |
| id     | STRING    |
| entity | STRING    |
| name   | STRING    |
| score  | NUMERIC   |

### Companies

Purpose: This API is used to fetch all the companies in the account

Source API Documentation: <https://api2.timedoctor.com/#/Companies/companies>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name           | Data Type |
| -------------- | --------- |
| role           | STRING    |
| hiredAt        | STRING    |
| lastSeen       | RECORD    |
| tagIds         | STRING    |
| onlyProjectIds | STRING    |
| name           | STRING    |
| company        | RECORD    |
| custom         | RECORD    |
| isSilent       | BOOLEAN   |
| isInteractive  | BOOLEAN   |
| allowManual    | BOOLEAN   |

### Files

Purpose: This API is used to fetch all the files uploaded in the company

Source API Documentation: <https://api2.timedoctor.com/#/Files/getFiles>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name     | Data Type |
| -------- | --------- |
| userId   | STRING    |
| date     | TIMESTAMP |
| deviceId | STRING    |
| numbers  | RECORD    |

### Notifications

Purpose: This API is used to fetch all the notifications

Source API Documentation: <https://api2.timedoctor.com/#/Notifications/getUserNotifications>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name           | Data Type |
| -------------- | --------- |
| \_id           | STRING    |
| name           | STRING    |
| notifyType     | STRING    |
| condType       | STRING    |
| condValue      | STRING    |
| scope          | STRING    |
| dataIds        | STRING    |
| daysApplicable | STRING    |

### Payroll

Purpose: This API is used to fetch payroll of all employees

Source API Documentation: <https://api2.timedoctor.com/#/Payroll/payrolls>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name             | Data Type |
| ---------------- | --------- |
| id               | STRING    |
| name             | STRING    |
| email            | STRING    |
| role             | STRING    |
| currency         | STRING    |
| adjustment       | NUMERIC   |
| payRate          | NUMERIC   |
| payMethod        | STRING    |
| payIdentifier    | STRING    |
| hourlyLimit      | NUMERIC   |
| hourlyLimitRange | STRING    |

### Projects

Purpose: This API is used to fetch all the projects in the company

Source API Documentation: <https://api2.timedoctor.com/#/Projects/projects>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name        | Data Type |
| ----------- | --------- |
| id          | STRING    |
| integration | RECORD    |
| name        | STRING    |
| description | STRING    |
| deleted     | BOOLEAN   |
| weight      | NUMERIC   |

### Tags

Purpose: This API is used to fetch all the tags&#x20;

Source API Documentation: <https://api2.timedoctor.com/#/Groups%20(Tags)/tags>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name                  | Data Type |
| --------------------- | --------- |
| special               | STRING    |
| users                 | NUMERIC   |
| usersOnReports        | NUMERIC   |
| selfUser              | NUMERIC   |
| managedUsers          | NUMERIC   |
| managedUsersOnReports | NUMERIC   |
| id                    | STRING    |
| name                  | STRING    |
| creatorId             | STRING    |
| deleted               | BOOLEAN   |
| readOnly              | BOOLEAN   |
| managers              | STRING    |
| createdAt             | TIMESTAMP |
| modifiedAt            | TIMESTAMP |

### Tasks

Purpose: This API is used to fetch all the tasks in the company&#x20;

Source API Documentation: <https://api2.timedoctor.com/#/Tasks/tasks>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name        | Data Type |
| ----------- | --------- |
| id          | STRING    |
| status      | STRING    |
| reporterId  | STRING    |
| deleted     | BOOLEAN   |
| deletedAt   | STRING    |
| project     | RECORD    |
| name        | STRING    |
| description | STRING    |
| integration | RECORD    |

### Users

Purpose: This API is used to fetch all the users in the company&#x20;

Source API Documentation: <https://api2.timedoctor.com/#/Users/getUsers>

Replication: Full Replication

Replication Key: NA

**Fields**

| Name        | Data Type |
| ----------- | --------- |
| id          | STRING    |
| status      | STRING    |
| reporterId  | STRING    |
| deleted     | BOOLEAN   |
| deletedAt   | STRING    |
| project     | RECORD    |
| name        | STRING    |
| description | STRING    |
| integration | RECORD    |

### Activity\_worklog <a href="#activity_worklog-16" id="activity_worklog-16"></a>

**Description:** activity\_worklog table will help in tracking the number of hours the users have entered in their work time. The time is stored in seconds

**Replication type:** Incremental

| **Name**   | **Data Type** |
| ---------- | ------------- |
| start      | TIMESTAMP     |
| time       | NUMERIC       |
| mode       | STRING        |
| userId     | STRING        |
| taskId     | STRING        |
| projectId  | STRING        |
| deviceId   | STRING        |
| reason     | STRING        |
| editTimeId | STRING        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://daton-sarasanalytics.gitbook.io/daton/integrations/data-sources/productivity-trackers/time-doctor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
