# Worksnaps

Worksnaps is a time-tracking service designed for remote work that offers detailed project and user activity insights.

- **Category:** time tracking software
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 14
- **Triggers:** 0
- **Slug:** `WORKSNAPS`
- **Version:** 20260211_00

## Tools

### Create Project

**Slug:** `WORKSNAPS_CREATE_PROJECT`

Creates a new project in Worksnaps for tracking time and tasks. Use this tool when you need to set up a new project for time tracking. Projects serve as containers for tasks and time entries. Each project must have a unique name within the account. Note: Account plan limits may restrict the number of projects that can be created.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the project. Must be unique within the account. |
| `description` | string | No | Description of the project explaining its purpose and scope. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create task

**Slug:** `WORKSNAPS_CREATE_TASK`

Tool to create a new task in a specified project. Use after confirming project ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the task |
| `user_id` | integer | No | ID of the user to assign the task |
| `due_date` | string | No | Due date in YYYY-MM-DD format |
| `project_id` | integer | Yes | ID of the project to create the task in |
| `description` | string | No | Brief description of the task |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task

**Slug:** `WORKSNAPS_DELETE_TASK`

Permanently deletes a task from a Worksnaps project. This action is destructive and cannot be undone. Use GET_TASKS first to find the task_id, and GET_PROJECTS to find the project_id. Returns success=true if the task was deleted. Returns 404 error if project or task does not exist.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | integer | Yes | The unique ID of the task to delete. Can be obtained from GET_TASKS or CREATE_TASK actions. |
| `project_id` | integer | Yes | The unique ID of the Worksnaps project that contains the task. Can be obtained from GET_PROJECTS or GET_PROJECT_DETAILS actions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Details

**Slug:** `WORKSNAPS_GET_PROJECT_DETAILS`

Tool to retrieve details of a specific project. Use when you have a project_id and need its details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | ID of the project to retrieve. Must be a positive integer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Report

**Slug:** `WORKSNAPS_GET_PROJECT_REPORT`

Retrieves time entries for a specific project using the Worksnaps Time Entries API. Returns individual time tracking records showing when users worked on the project. Use this to get detailed time tracking data for a project within a timestamp range. Timestamps must be Unix timestamps at 10-minute interval boundaries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_ids` | string | No | Optional semicolon-separated list of task IDs to filter time entries (e.g., '100;200'). |
| `user_ids` | string | No | Optional semicolon-separated list of user IDs to filter time entries (e.g., '123;456'). If not provided, returns entries for all users in the project. |
| `project_id` | integer | Yes | ID of the project to retrieve time entries for. |
| `to_timestamp` | integer | Yes | End of the time range as a Unix timestamp (seconds since epoch). Must be at a 10-minute interval boundary and after from_timestamp. |
| `from_timestamp` | integer | Yes | Start of the time range as a Unix timestamp (seconds since epoch). Must be at a 10-minute interval boundary. |
| `time_entry_type` | string | No | Optional filter by time entry type. Use 'online' for tracked time with screenshots or 'offline' for manual entries. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Projects

**Slug:** `WORKSNAPS_GET_PROJECTS`

Tool to retrieve a paginated list of projects. Use after authenticating to list accessible projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (>=1) |
| `per_page` | integer | No | Number of projects per page (1-100) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task Details

**Slug:** `WORKSNAPS_GET_TASK_DETAILS`

Tool to retrieve details of a specific task within a project. Use after confirming project_id and task_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | integer | Yes | The unique identifier of the task to retrieve |
| `project_id` | integer | Yes | The unique identifier of the project containing the task |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Tasks

**Slug:** `WORKSNAPS_GET_TASKS`

Tool to retrieve tasks for a specific project. Use when you have a project ID and need its tasks. Example: 'Get tasks for project 42'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (optional, default=1) |
| `status` | string ("open" | "closed") | No | Filter tasks by status: 'open' or 'closed' (optional) |
| `user_id` | integer | No | Filter tasks by user ID (optional) |
| `per_page` | integer | No | Number of tasks per page (optional, default=50) |
| `project_id` | integer | Yes | ID of the project to retrieve tasks for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Account

**Slug:** `WORKSNAPS_GET_USER_ACCOUNT`

Tool to retrieve information about a specific user account. Use after confirming the user_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The unique identifier of the user to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Assignments

**Slug:** `WORKSNAPS_GET_USER_ASSIGNMENTS`

Tool to retrieve a list of all user assignments for a specific project. Returns details about users assigned to the project including their roles, permissions, and contact information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | ID of the project to retrieve assignments for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Users

**Slug:** `WORKSNAPS_GET_USERS`

Retrieves a list of all users in the Worksnaps account. Returns user details including id, login, name, email, time zone, and active status. Use this to get user IDs for other user-related operations.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project

**Slug:** `WORKSNAPS_PUT_UPDATE_PROJECT`

Tool to update an existing project. Use when you have project_id and fields to modify.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New project name (optional) |
| `status` | string ("active" | "archived") | No | Project status: 'active' or 'archived' (optional) |
| `end_date` | string | No | Project end date YYYY-MM-DD (optional) |
| `client_id` | integer | No | New client ID (optional) |
| `project_id` | integer | Yes | ID of the project to update |
| `start_date` | string | No | Project start date YYYY-MM-DD (optional) |
| `description` | string | No | New project description (optional) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `WORKSNAPS_PUT_UPDATE_TASK`

Tool to update details of an existing task. Use when you have project_id, task_id, and fields to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New task name (optional) |
| `status` | string ("open" | "closed") | No | New task status: 'open' or 'closed'. Note: Must be combined with 'name' or 'description' update. |
| `task_id` | integer | Yes | ID of the task to update |
| `due_date` | string | No | New due date in YYYY-MM-DD format. Note: Must be combined with 'name' or 'description' update. |
| `project_id` | integer | Yes | ID of the project containing the task |
| `description` | string | No | New task description (optional) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User Account

**Slug:** `WORKSNAPS_PUT_UPDATE_USER_ACCOUNT`

Tool to update information for a specific user account. Use when modifying user details after confirming the user exists. Note: This can only be done by the user himself or by a trusted partner using partner's API token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | New email address for the user |
| `user_id` | integer | Yes | ID of the user account to be updated |
| `password` | string | No | New password for the user |
| `last_name` | string | No | New last name for the user |
| `first_name` | string | No | New first name for the user |
| `timezone_id` | integer | No | Timezone ID for the user (integer ID representing the timezone) |
| `password_confirmation` | string | No | Confirmation of the new password (required when setting password) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
