- Home
- Resources
- Integrations
- Clockify
Clockify n8n integrationAutomate Clockify with n8n.
Tracked hours are only useful once something else reads them. The Clockify n8n integration exposes 25 operations across 7 resources, from clients and projects down to a single time entry, and a trigger that polls your workspace. Written for teams who bill by the hour.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Clockify n8n integration actually cover?
The Clockify node talks to the Clockify REST API from inside a workflow. It creates, reads, updates and deletes clients, projects, tags, tasks and time entries, and it lists the users of a workspace. The Clockify Trigger starts a workflow on its own by polling, which means n8n asks the API at a set interval instead of waiting for a call from Clockify.
Three shapes of workflow cover most of what teams build on it. The first one is billing prep: timeEntry.get and project.getAll feed a monthly roll-up into Google Sheets, so the numbers a finance person reads are the numbers Clockify holds. The second one is project bootstrapping: a signed deal creates the client with client.create, then the project with project.create, then the task list with task.create, in the same run, with no one retyping a name.
The third one is a nudge loop. The trigger polls the workspace, the workflow checks what came back, and an alert lands in Slack when an entry has no project attached or when a description field is empty. Same pattern works with a digest sent through Gmail on Friday afternoon.
Where the node stops, HTTP Request takes over. The node covers 7 resources; any other Clockify endpoint is reachable with the HTTP Request node, reusing the same credential through its predefined authentication, so you never store the key twice. That is the honest answer for anything outside clients, projects, tags, tasks, time entries, users and workspaces.
Two limits are worth knowing before you build. List operations page through results only when Return All is on, otherwise you get a capped batch fixed by Limit, which bites on a workspace with a long project history. And the trigger runs on the schedule you set, so a workflow expected to answer faster than that interval is the wrong design here.
If n8n itself is the part you are unsure about, the n8n review covers what the tool does well and where it hurts, and the n8n training walks through building workflows like these end to end.
How do you connect Clockify to n8n?
- 01
Grab your Clockify API key
You need a Clockify account first. The key lives in your Clockify Profile Settings, and it is the only supported authentication method for both the Clockify node and the Clockify Trigger. Copy it once, keep the tab open until the credential test passes in n8n, then close it. The key carries the rights of the account it belongs to, so use an account that can see the workspace you plan to automate.
- 02
Create the credential in n8n
Open the Credentials menu in n8n, pick the Clockify credential type and paste the value into API Key. A credential is created once and reused everywhere: every Clockify node you add later, in any workflow, offers it in a dropdown. Both the action node and the trigger node accept the same one, so there is nothing to duplicate when you add the trigger afterwards.
- 03
Point the node at a workspace
Add the Clockify node, select the credential, then pick a resource and an operation. On the trigger side, Workspace Name or ID is required and comes from a dropdown loaded through your key, or from an expression if the workspace changes per run. Trigger is required too and sets what the node watches. Run the workflow once to confirm real data comes back.
What starts a Clockify workflow?
Clockify Trigger is the node that starts a workflow each time Clockify receives a new submission. Pick the form, activate the workflow: n8n registers the webhook on your Clockify account.
What you see in n8n
Configuration notes
01Configure the Clockify Trigger
The Clockify Trigger listens to Clockify events and starts the workflow without any manual run. It has no event checklist to tick, because the catalog exposes no separate event values for this node: you choose a workspace and what the node watches, and that is the whole setup.
Key parameters
- Workspace Name or ID: required, chosen from the list that your API key can see, or given as an expression such as
{{ $json.workspaceId }}when one workflow serves several workspaces. - Trigger: required, picked from the list, and it sets what the node watches inside that workspace.
02Set Poll Times and the workflow timezone
This trigger works by polling. n8n calls the Clockify API at the interval you choose and emits one item per new element it finds, so nothing has to be registered on the Clockify side and no public URL is involved.
Key parameters
- Poll Times: the schedule n8n follows when it asks the API, down to every minute at most. The delay before a workflow starts equals that interval, so pick it against how fresh the data needs to be, not against how fast the API answers.
What can the Clockify node do?
The Clockify node exposes 25 operations across 7 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete |
|---|---|---|---|---|---|
| Client | ✓ | ✓ | ✓ | ✓ | ✓ |
| Project | ✓ | ✓ | ✓ | ✓ | ✓ |
| Tag | ✓ | ✓ | ✓ | ✓ | |
| Task | ✓ | ✓ | ✓ | ✓ | ✓ |
| Time Entry | ✓ | ✓ | ✓ | ✓ | |
| User | ✓ | ||||
| Workspace | ✓ |
Operations index
Client
5 operationsCreate a client
client.createWhat you see in n8n
Notes & use cases
Adds a client to the workspace and hands back its record, including the ID you reuse to attach projects to that client later in the run.
Key parameters
- Client Name: the name of the client being created, usually mapped from an upstream node with
{{ $json.company }}rather than typed in.
Delete a client
client.deleteWhat you see in n8n
Notes & use cases
Removes a client from the workspace. There is no undo on the n8n side, so a filter or an approval step in front of it is a reasonable habit.
Key parameters
- Client ID: the client to remove. The node does not flag it as required, but with an empty value there is nothing to target, so map it from the previous node, for example
{{ $json.id }}.
Get a client
client.getWhat you see in n8n
Notes & use cases
Reads one client and returns its record, which is how you check a name or confirm an ID before a later operation writes anything.
Key parameters
- Client ID: the identifier of the client to read. Not flagged as required in the node, yet the operation needs it to know which client, so feed it from the item in hand.
Get many clients
client.getAllWhat you see in n8n
Notes & use cases
Returns the clients of the workspace as one item per client, with filtering and sorting handled by the API rather than by a Code node downstream.
Key parameters
- Return All: on, n8n pages through every client; off, it stops at Limit.
- Archived: keeps or excludes archived clients, which matters on an old workspace.
- Name: filters clients by name.
- Sort Order:
ASCENDINGorDESCENDING.
Update a client
client.updateWhat you see in n8n
Notes & use cases
Edits a client that already exists, which is the operation to reach for when a company changes name or when an old client should stop appearing in pickers.
Key parameters
- Name: required, and it is the value the client ends up with, so send the current name when you only mean to change something else.
- Client ID: which client gets updated.
- Address: the address of the client being updated.
- Archived: archives the client instead of deleting it.
Project
5 operationsCreate a project
project.createWhat you see in n8n
Notes & use cases
Opens a project in the workspace so hours have somewhere to land, and returns the project record for the steps that follow.
Key parameters
- Project Name: required, the name of the project being created.
- Client Name or ID: attaches the project to a client, from the list or an expression.
- Billable: marks the project as billable from the start.
- Estimate: sets the estimated time.
- Color, Is Public, Note: visual and access details, plus a note about the project.
Delete a project
project.deleteWhat you see in n8n
Notes & use cases
Takes a project out of the workspace. Because reporting is built on projects, this one deserves a confirmation step upstream rather than a raw connection from a list.
Key parameters
- Project ID: required, and it is an identifier, not the project name shown in the interface. Read it from a previous Get many projects step with
{{ $json.id }}.
Get a project
project.getWhat you see in n8n
Notes & use cases
Fetches a single project and returns what Clockify holds on it, which is how a workflow checks a project before writing hours or tasks against it.
Key parameters
- Project ID: required. The dropdown elsewhere in the node shows names, this field wants the identifier, typically carried over from the trigger or from a list step.
Get many projects
project.getAllWhat you see in n8n
Notes & use cases
Lists projects with the widest filter set of the node, 12 optional fields, so most of the sorting you would write by hand happens in the API call.
Key parameters
- Return All and Limit: full pagination, or a capped batch.
- Client Names or IDs, Contains Client, Client Status: narrow the list to the projects of given clients.
- Archived, Billable, Is Template, Name: the usual state filters.
- Sort Column (
NAME,CLIENT_NAME,DURATION) and Sort Order.
Update a project
project.updateWhat you see in n8n
Notes & use cases
Changes the settings of a live project without touching the hours already logged on it. Only the fields you add are sent, so a run can flip one flag and leave the rest alone.
Key parameters
- Project ID: required, the project to edit.
- Billable: switches a project from internal to billable when a contract is signed.
- Estimate, Name, Note, Color, Is Public, Client Name or ID: the rest of the editable record.
Tag
4 operationsCreate a tag
tag.createWhat you see in n8n
Notes & use cases
Adds a tag to the workspace so entries can be labelled by anything your projects do not already say, for instance a delivery phase or a funding line.
Key parameters
- Name: required, the name of the tag being created. Keep the spelling generated by the workflow stable, since tags are matched by people in the Clockify interface afterwards.
Delete a tag
tag.deleteWhat you see in n8n
Notes & use cases
Drops a tag from the workspace. Useful when a labelling scheme is replaced and the old values keep showing up in the picker.
Key parameters
- Tag ID: required, the identifier of the tag, which you normally get from a Get many tags step earlier in the same workflow rather than from a hardcoded value.
Get many tags
tag.getAllWhat you see in n8n
Notes & use cases
Returns the tags of the workspace, which is the step that turns tag names into the IDs other operations expect.
Key parameters
- Return All: on for the whole list, off to stop at Limit.
- Name: filters on the tag name.
- Archived: includes or leaves out archived tags.
- Sort Column (
NAME) and Sort Order (ASCENDING,DESCENDING).
Update a tag
tag.updateWhat you see in n8n
Notes & use cases
Renames a tag or archives it, so a label can change wording without breaking the entries already carrying it.
Key parameters
- Tag ID: required, the tag to edit.
- Name: the new wording.
- Archived: hides the tag from new entries while the historical ones keep it.
Task
5 operationsCreate a task
task.createWhat you see in n8n
Notes & use cases
Puts a task inside a project, which is the level people actually pick when they start a timer.
Key parameters
- Project Name or ID: required, from the list or an expression; a task cannot exist outside a project.
- Task Name: required, the name of the task to create.
- Assignee Names or IDs: who the task goes to.
- Estimate: expected time in the
2:30format, two hours and thirty minutes.
Delete a task
task.deleteWhat you see in n8n
Notes & use cases
Removes a task from its project. Both coordinates are needed, since a task ID is read inside the project it belongs to.
Key parameters
- Project Name or ID: required, the project holding the task.
- Task ID: required, the ID of the task to delete, not its label.
Get a task
task.getWhat you see in n8n
Notes & use cases
Looks up one task and returns its record, useful for reading an estimate or a status before deciding what the workflow does next.
Key parameters
- Project Name or ID: required, the project the task sits in.
- Task ID: required, the ID of the task to get.
Get many tasks
task.getAllWhat you see in n8n
Notes & use cases
Walks through the tasks of one project. The scope is the project, not the workspace, so a report across several projects loops over them.
Key parameters
- Project Name or ID: required, the project to read.
- Return All and Limit: every task, or a capped batch.
- Is Active: keeps only the tasks still open.
- Name: text to match in the task name.
- Sort Column (
NAME) and Sort Order.
Update a task
task.updateWhat you see in n8n
Notes & use cases
Moves a task along: new owner, new estimate, or the switch to done once the work is delivered.
Key parameters
- Project Name or ID and Task ID: both required to target the task.
- Status:
ACTIVEorDONE. - Assignee Names or IDs: reassigns the task.
- Estimate: revised time in the
2:30format. - Name: renames it.
DONE without anyone opening the app.Time Entry
4 operationsCreate a time entry
timeEntry.createWhat you see in n8n
Notes & use cases
Writes an entry into Clockify from data that started somewhere else, which is how hours tracked in another tool end up in the same timesheet as everyone else's.
Key parameters
- Start: required, a date and time; leaving it empty stops the node.
- End: closes the entry, otherwise it stays running.
- Project Name or ID, Task ID, Tag Names or IDs: where the hours are charged.
- Description, Billable, Custom Fields: the rest of the entry.
Delete a time entry
timeEntry.deleteWhat you see in n8n
Notes & use cases
Erases one entry from the timesheet. Hours are what invoices are built on, so this is the operation to guard with a check on who and what, before the run reaches it.
Key parameters
- Time Entry ID: required, the entry to erase, normally carried by the item that triggered the workflow.
Get a time entry
timeEntry.getWhat you see in n8n
Notes & use cases
Reads a single entry. Two optional fields change the shape of what comes back, and they save a round of extra lookups.
Key parameters
- Time Entry ID: required.
- Hydrated: returns the project, task and tags in full instead of their IDs alone.
- Consider Duration Format: rounds the duration to minutes or seconds, following the
hh:mmorhh:mm:ssformat set in the workspace.
Update a time entry
timeEntry.updateWhat you see in n8n
Notes & use cases
Corrects an entry after it was logged, the operation that absorbs the everyday mistakes: wrong project, missing tag, forgotten stop.
Key parameters
- Time Entry ID: required.
- Start and End: fix the boundaries of the entry.
- Project Name or ID, Task ID, Tag Names or IDs: recharge the hours somewhere else.
- Description, Billable, Custom Fields: the rest of the record.
User
1 operationGet many users
user.getAllWhat you see in n8n
Notes & use cases
Lists the people of the workspace, which is how a workflow turns a name or an email into the user ID other steps need.
Key parameters
- Return All and Limit: everyone, or a first batch.
- Email and Name: filter on a string contained in either.
- Status:
ACTIVE,INACTIVE,PENDINGorDECLINED, handy to spot invitations nobody accepted. - Sort Column (
EMAIL,NAME,HOURLYRATE) and Sort Order.
Workspace
1 operationGet many workspaces
workspace.getAllWhat you see in n8n
Notes & use cases
Clockify hangs everything on a workspace, so this operation returns the workspaces the API key can reach, each with its own ID. Every other operation and the Clockify Trigger ask for that ID before anything else.
Key parameters
- Return All: on, n8n pages through the API and returns every workspace on the account; off, it stops at the number set in Limit.
- Limit: the maximum number of workspaces returned, enough when you only need the first one to feed
{{ $json.id }}into the next node.
Need help automating Clockify with n8n?
A person reads every message.
