Worksnaps

Learn how to use Worksnaps with Composio

Overview

SLUG: WORKSNAPS

Description

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

Authentication Details

basic_encoded
stringRequired

Connecting to Worksnaps

Create an auth config

Use the dashboard to create an auth config for the Worksnaps toolkit. This allows you to connect multiple Worksnaps accounts to Composio for agents to use.

1

Select App

Navigate to Worksnaps.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Worksnaps Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4worksnaps_auth_config_id = "ac_YOUR_WORKSNAPS_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Worksnaps for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, worksnaps_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Worksnaps toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["WORKSNAPS"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Project

Description

Tool to create a new project in worksnaps. use after gathering project details before logging time.

Action Parameters

budget
number
client_id
integer
description
string
end_date
string
name
stringRequired
start_date
string
status
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create task

Description

Tool to create a new task in a specified project. use after confirming project id exists.

Action Parameters

assigned_to
integer
description
string
due_date
string
name
stringRequired
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Task

Description

Tool to delete a task from a project. use when you need to remove a task by its id after confirming the project context.

Action Parameters

project_id
integerRequired
task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Project Details

Description

Tool to retrieve details of a specific project. use when you have a project id and need its details.

Action Parameters

project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Project Report

Description

Tool to retrieve a project's time tracking report. use when you need summary of logged time per day for a project within an optional date range.

Action Parameters

from_date
project_id
integerRequired
to_date
user_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Projects

Description

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

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Task Details

Description

Tool to retrieve details of a specific task within a project. use after confirming project id and task id.

Action Parameters

project_id
integerRequired
task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Project Tasks

Description

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'.

Action Parameters

page
integerDefaults to 1
per_page
integerDefaults to 50
project_id
integerRequired
status
string
user_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get User Account

Description

Tool to retrieve information about a specific user account. use after confirming the user id.

Action Parameters

user_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get User Assignments

Description

Tool to retrieve a list of all user assignments for the authenticated user. use after authenticating to see which projects you're assigned to.

Action Parameters

project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Users

Description

Tool to retrieve a list of all users. use when you need to fetch all users in the worksnaps account.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Project

Description

Tool to update an existing project. use when you have project id and fields to modify.

Action Parameters

client_id
integer
description
string
end_date
string
name
string
project_id
integerRequired
start_date
string
status
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Task

Description

Tool to update details of an existing task. use when you have project id, task id, and fields to update.

Action Parameters

description
string
due_date
string
name
string
project_id
integerRequired
status
string
task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update User Account

Description

Tool to update information for a specific user account. use when modifying user details after confirming the user exists.

Action Parameters

email
string
first_name
string
is_active
boolean
is_manager
boolean
last_name
string
password
string
password_confirmation
string
time_zone
string
user_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired