Clockify
Create time entries and list projects in Clockify.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("clockify", "create-time-entry", {
"workspaceId": "<workspaceId>",
"start": "2026-10-12T09:00:00Z",
"end": "2026-10-12T09:00:00Z"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Clockify answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "clockify-create-time-entry",
name: "Clockify: Create Time Entry",
description: "Calls Clockify when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("clockify", {
"action": "create-time-entry",
"workspaceId": "<workspaceId>",
"start": "2026-10-12T09:00:00Z",
"end": "2026-10-12T09:00:00Z"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/clockify/create-time-entry" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"workspaceId":"<workspaceId>","start":"2026-10-12T09:00:00Z","end":"2026-10-12T09:00:00Z"}}'Actions
create-time-entryin catalog
Create Time Entry. Creates a new time entry.
Also accepted as create_time_entry.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
startrequired | date-time (ISO) | Start Datetime |
endrequired | date-time (ISO) | End Datetime |
descriptionoptional | long text | Entry Description |
projectIdoptional | id (picked from your account) | Project |
taskIdoptional | id (picked from your account) | Task |
billableoptional | boolean | Billable |
tagIdsoptional | ids (picked from your account) | Tags |
find-time-entryin catalog
Find Time Entry. Finds a time entry by description, start datetime or end datetime.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
startoptional | date-time (ISO) | Start Datetime |
endoptional | date-time (ISO) | End Datetime |
descriptionoptional | long text | Entry Description |
projectIdoptional | id (picked from your account) | Project |
taskIdoptional | id (picked from your account) | Task |
create-task
Create Task. Creates a new in a specific project.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
projectIdrequired | id (picked from your account) | Project |
namerequired | text | Task Name |
statusoptional | one of "ACTIVE" | "DONE" | "ALL" | Status |
assigneeIdsoptional | ids (picked from your account) | Assignee |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
find-running-timer
Find Running Timer. Finds currently running timer on specified workspace.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
find-task
Find Task. Finds an existing task in a specific project.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
projectIdrequired | id (picked from your account) | Project |
namerequired | text | Task Name |
exactMatchoptional | boolean | Exact Match ? |
start-timer
Start Timer. Starts a new time entry.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
descriptionoptional | long text | Entry Description |
projectIdoptional | id (picked from your account) | Project |
taskIdoptional | id (picked from your account) | Task |
billableoptional | boolean | Billable |
tagIdsoptional | ids (picked from your account) | Tags |
stop-timer
Stop Timer. Stops currently running timer on specified workspace.
| Input | Type | Description |
|---|---|---|
workspaceIdrequired | id (picked from your account) | Workspace |
Details
- Id
clockify- Category
- Project management
- Tags
- time-tracking, timesheets, productivity
- Package
@activepieces/piece-clockify@0.1.4- Tier
- Community