This is an n8n community node. It lets you use the Runn API in your n8n workflows.
Runn is a resource planning and project forecasting platform. This node allows you to manage people, projects, and clients, and react to changes in real time using the trigger node.
n8n is a fair-code licensed workflow automation platform.
Installation | Operations | Credentials | Compatibility | Usage | Resources | Version history
Follow the installation guide in the n8n community nodes documentation.
# Install dependencies
npm install
# Build before you run
npm run build
# Start n8n with the custom node loaded (recommended)
npm run dev
# Alternative: use globally installed n8n
npm run dev:local| Operation | Description |
|---|---|
| Create or Update | Create or update an actual. Overwrites any existing actual for the same date, person, project, role, and workstream. |
| Delete | Delete an actual by ID |
| Get All | Get all actuals, with an optional Modified After date filter |
| Operation | Description |
|---|---|
| Create | Create a new assignment. Required: Person ID, Project ID, Role ID, Start Date, End Date, Minutes Per Day. Optional: Billable, Include Non-Working Days, Note, Phase ID, Workstream ID |
| Delete | Delete an assignment by ID |
| Get All | Get all assignments, with optional filters: Person ID, Project ID, Role ID, Start Date, End Date, Modified After, Only Active |
| Operation | Description |
|---|---|
| Archive | Archive a person |
| Create | Create a new person |
| Delete | Delete a person |
| Get All | Get all people |
| Get One | Get a single person |
| Unarchive | Unarchive a person |
| Update | Update a person |
| Operation | Description |
|---|---|
| Add Note | Add a note to a project |
| Archive | Archive a project |
| Create | Create a new project |
| Delete | Delete a project |
| Get All | Get all projects |
| Get One | Get a single project |
| Unarchive | Unarchive a project |
| Update | Update a project |
| Operation | Description |
|---|---|
| Archive | Archive a client |
| Create | Create a new client |
| Get All | Get all clients |
| Get One | Get a single client |
| Unarchive | Unarchive a client |
| Update | Update a client |
| Operation | Description |
|---|---|
| Get All | Get all contracts, with optional filters: Modified After, Sort By (id / createdAt / updatedAt), Order (asc / desc) |
| Operation | Description |
|---|---|
| Create Leave | Create a leave time off for a person. Automatically merges overlapping time offs. Required: Person ID, Start Date, End Date. Optional: Minutes Per Day, Note. |
| Get All Leave | Get all leave time offs, with optional filters: Person ID, Start Date, End Date, Modified After, Sort By, Order. |
The trigger node polls the Runn API and fires when records are created, updated, or deleted.
Resources: People, Projects, Clients, Assignments, Actuals, Contracts, Users, Teams
Events: Created, Updated, Deleted
Each trigger output includes a runnLink field with a direct link to the changed record in the Runn app.
To use this node you need a Runn API key:
| Field | Description |
|---|---|
| API Key | Your Runn API key. Generate one in Runn under Settings → API. |
The node authenticates using a Bearer token in the Authorization header.
- Requires Node.js v18 or higher
- Uses the
runn-api-clientnpm package
- Add the Runn node (or Runn Trigger) to your workflow
- Configure your Runn API credentials
- Select a resource (Actuals, Assignments, Clients, Contracts, People, Projects, or Time Offs)
- Choose an operation
- Fill in the required parameters
- Execute the workflow
Tip: Use the Runn Trigger node to automatically start workflows when records change in Runn — no webhooks required, it uses polling.
- n8n community nodes documentation
- Runn API documentation
- How to generate a Runn API token
- GitHub repository
This project is based on n8n-nodes-runn by Roman Rodomansky @ Ralabs, which is in turn based on the n8n community node starter template. Both are released under the MIT License. This package extends the original with additional resources, operations, and improvements.
- Wrapped raw HTTP errors in
NodeApiErrorso status codes and response bodies surface correctly in the n8n UI - Renamed resource options to singular: Actual, Assignment, Client, Contract, Person, Project, Time Off
- Replaced
runn-api-clientnpm dependency with n8n's built-inhttpRequestWithAuthenticationhelper — removes the external dependency that blocked n8n Cloud vetting - Converted trigger node from
setInterval-based polling to n8n's nativepolling: true+poll()pattern - Added
authenticateproperty to credentials so auth headers are injected automatically by n8n
- Added Time Offs resource with Create Leave (POST
/time-offs/leave/) and Get All Leave (GET/time-offs/leave/) operations
- Added Contracts resource with Get All operation (GET
/contracts/), supporting optional filters: Modified After, Sort By, and Order
- Added Delete operation to Assignments resource
- Fixed date timezone bug: dates no longer shift by one day for users in timezones ahead of UTC
- Added Create operation to Assignments resource (POST
/assignments/) with required fields (Person ID, Project ID, Role ID, Start Date, End Date, Minutes Per Day) and optional fields (Billable, Include Non-Working Days, Note, Phase ID, Workstream ID)
- Added Assignments resource with Get All operation, supporting server-side filters (Person ID, Project ID, Role ID, Start Date, End Date, Modified After) and client-side Only Active filter
- Added Actuals resource with Create or Update, Delete, and Get All operations
- Added Team ID or Name field to the People > Create operation — accepts either a numeric ID or a team name (resolved automatically)
- Fixed credential test: corrected API base URL and added required headers so the green "Connection tested" badge now appears
- Fixed
updatePerson: First Name, Last Name, and Email are no longer required fields (partial updates now work) - Fixed trigger node: removed duplicate fields in trigger output
- Fixed error handling: all write operations now handle network errors safely
- Removed debug-level logging from production API calls
- Initial release
- People resource with Archive, Create, Delete, Get All, Get One, Unarchive, and Update operations
- Projects resource with Add Note, Archive, Create, Delete, Get All, Get One, Unarchive, and Update operations
- Clients resource with Archive, Create, Get All, Get One, Unarchive, and Update operations
- Runn Trigger node for polling-based event detection across all resources
- Bearer token authentication with credential test