Description
๐ n8n-nodes-keephub
Seamlessly integrate Keephub with your n8n workflows ๐ฏ
Unlock the power of employee engagement and communication automation with this comprehensive n8n community node for Keephub.
๐ง Installation โข ๐ Documentation โข ๐ Quick Start โข ๐ Changelog โข ๐ค Contributing
๐ About
This is a professional n8n community node that enables you to harness the full power of Keephub within your workflow automation.
Keephub is an enterprise-grade employee engagement platform for managing:
- ๐ฅ User management and organizational structures
- ๐ฐ Content creation and distribution
- โ Task management and templates
- ๐ Dynamic form submissions and responses
n8n is a fair-code licensed workflow automation platform that puts automation in the hands of technical and business users.
๐ง Installation
๐ฆ Community Nodes Method (Recommended)
- Open your n8n instance
- Navigate to Settings โ๏ธ โ Community Nodes
- Click Install a community node
- Enter:
n8n-nodes-keephub - Click Install
- โ Done! The node is ready to use
๐ ๏ธ Manual Installation
For Local n8n:
cd ~/.n8n/nodes
npm install n8n-nodes-keephub
For Docker:
docker exec -it <n8n-container> sh
cd /home/node/.n8n/nodes
npm install n8n-nodes-keephub
# Restart your container
For Node.js n8n:
npm install -g n8n-nodes-keephub
[!TIP]
Restart your n8n instance and the Keephub node will appear in your palette! ๐จ
๐ Quick Start
1๏ธโฃ Set Up Credentials
- In n8n, go to Credentials ๐
- Create New โ Search for Keephub API
- Fill in your credentials:
- Client URL: https://yourcompany.keephub.io
- Auth Type: Choose Bearer Token or Username/Password
- Language (optional): Default is
en
- Test & Save โ๏ธ
2๏ธโฃ Add the Node to Your Workflow
- Click + to add a node
- Search for Keephub
- Select your resource and operation
- Configure parameters
- Run! ๐
3๏ธโฃ Example: Get User Info
Keephub Node Configuration:
โโโ Resource: User
โโโ Operation: Find by Login Name
โโโ Login Name: john.doe
Output:
{
"id": "63bd885034d0466d11073575",
"loginName": "john.doe",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
}
๐ Operations
๐ฅ User Operations
| Operation | Description |
|---|---|
| ๐ Get by ID | Retrieve a user by their unique ID |
| ๐ Find by Login Name | Search users by login name |
| ๐จโ๐ผ Find by Group | Fetch all users in a specific group |
| ๐ข Find by Orgunit | Retrieve users from an organization unit |
Example:
// Get all users in a group
{
"resource": "user",
"operation": "findByGroup",
"groupId": "group_12345"
}
๐ฐ Content Operations
| Operation | Description |
|---|---|
| โจ Create | Create new content (news, forms, manuals, etc.) |
| ๐๏ธ Delete | Remove content |
| ๐ Find by Content Pool | Filter content by pool with optional sorting |
| ๐ท๏ธ Find by Group | Get content assigned to groups with optional sorting |
| ๐ข Find by Orgunit | Retrieve content by organization with optional sorting |
| ๐ Get by ID | Retrieve specific content |
| โ๏ธ Update by ID | Modify existing content |
Example – Create Content:
{
"resource": "content",
"operation": "create",
"defineContentInput": "json",
"contentBody": {
"originLanguage": "en",
"contentType": "news",
"contentPool": "POOL_ID",
"title": { "en": "๐ Company Announcement" },
"message": { "en": "<p>Great news everyone!</p>" },
"orgchartSelection": { "include": ["root0001"], "exclude": [] }
}
}
Example – Find Content by Orgunit with Filtering:
{
"resource": "content",
"operation": "findByOrgunit",
"orgunitId": "root0077",
"limit": 50,
"options": {
"skip": 0,
"sortBy": "createdAt",
"sortOrder": 1
}
}
Content Filtering Parameters:
Limit (optional, default: 50): Maximum number of results to return
Options:
Skip: Number of results to skip (pagination)
Sort Field: Field to sort by (e.g., createdAt, updatedAt)
Sort Order: 1 for ascending, -1 for descending
โ Task Operations
| Operation | Description |
|---|---|
| โ Create | Create a new task template |
| ๐๏ธ Delete | Remove a task template |
| ๐ Get by ID | Retrieve a task template |
| ๐ Get By Orgunit | Fetch tasks by organization unit with filtering & pagination |
| ๐ Get Progress | Check task template progress |
| ๐ Get Status Counts | View task completion statistics |
Example:
{
"resource": "task",
"operation": "create",
"defineTaskInput": "json",
"taskJsonBody": {
"title": { "en": "Q4 Performance Review" },
"template": {
"form": {
"fields": [
{ "name": "rating", "type": "number" },
{ "name": "feedback", "type": "text" }
]
}
}
}
}
Example – Get Tasks by Orgunit with Filtering:
{
"resource": "task",
"operation": "getTaskByOrgunit",
"orgunitId": "root0077",
"limit": 50,
"options": {
"skip": 0,
"sortBy": "template.dueDate",
"sortOrder": 1,
"startDateGte": "2025-11-01T00:00:00Z",
"startDateLte": "2025-11-30T23:59:59Z"
}
}
Parameters:
Orgunit ID (required): The organization unit ID to filter tasks
Limit (optional, default: 50): Maximum number of results to return
Options:
Skip: Number of results to skip (pagination)
Sort Field: Field to sort by (e.g., template.dueDate)
Sort Order: 1 for ascending, -1 for descending
Start Date After: Filter tasks created/updated after this date (dateTime picker)
Start Date Before: Filter tasks created/updated before this date (dateTime picker)
๐ Form Submission Operations
| Operation | Description |
|---|---|
| ๐ฅ Get | Fetch complete form submission data |
| ๐ค Get Submitter Details | Retrieve full user profile of submitter |
| ๐ข Get Submission Orgunits | View orgunit hierarchy |
| ๐ Update Submission Orgunits | Change visibility by orgunit |
| โฑ๏ธ Calculate Response Duration | Time from creation to submission |
Example – Calculate Response Time:
{
"resource": "formSubmission",
"operation": "calculateResponseDuration",
"formSubmissionId": "form_67890"
}
// Returns:
{
"duration": {
"days": 2,
"hours": 5,
"minutes": 30,
"totalSeconds": 183930
}
}
Orgchart Operations
| Operation | Description |
|---|---|
| Get Ancestors | Get all ancestors in the org hierarchy |
| Get by External Ref | Retrieve an orgchart node by its externalRef value |
| Get by ID | Retrieve an orgchart node by ID |
| Get Children | Retrieve all children/descendants |
| Get Parent | Fetch the parent node of an orgchart node |
Example:
{
resource: "orgchart",
operation: "getChildren",
nodeId: "node123"
}
๐ Credentials Setup
Bearer Token Authentication
โ Most secure for API integrations
โ Use existing API tokens from Keephub
โ Perfect for server-to-server communication
Username/Password Authentication
โ Automatic token generation
โ Simple to set up
โ Credentials securely stored in n8n
All credentials are encrypted ๐ and never exposed in logs or workflows.
๐ก Real-World Examples
๐ง Example 1: Auto-Create Tasks from Email
Gmail Trigger
โ
Extract email data
โ
Keephub: Create Task
โ
Send confirmation email
๐ Example 2: Sync Users to Slack
Keephub: Get all users in a group
โ
Filter active users
โ
Slack: Create channels per active users in group
๐ Example 3: Form Response Automation
Keephub: Form Submission Trigger
โ
Get submitter details
โ
Calculate response time
โ
Store in database
โ
Send thank you message
โ๏ธ Node Configuration
Input Data
- All parameters support dynamic expressions with
{{ }} - Use previous node outputs:
{{ $node["Previous Node"].json.field }} - Access environment variables:
{{ $env.MY_VAR }}
Output Format
{
"pairedItem": { "item": 0 },
"json": {
// API response data
}
}
Error Handling
Enable "Continue on Error" to handle failures gracefully in your workflow.
๐ฆ Requirements
| Requirement | Version |
|---|---|
| n8n | v0.199.0+ |
| Node.js | 14.20.0+ |
| npm | 6.0.0+ |
๐ Troubleshooting
โ "Authentication failed"
- โ Verify your Keephub instance URL
- โ Check API credentials are correct
- โ Ensure credentials have required permissions
โ "Unknown operation"
- โ Verify resource and operation combination exist
- โ Check node version is latest
- โ Try refreshing the node palette
โ "Connection timeout"
- โ Check network connectivity
- โ Verify firewall allows outbound HTTPS
- โ Check Keephub instance is accessible
๐ Documentation
- ๐ n8n Documentation
- ๐ Keephub API Docs
- ๐ฌ n8n Community Forum
๐๏ธ Project Structure
n8n-nodes-keephub/
โโโ nodes/
โ โโโ Keephub/
โ โโโ Keephub.node.ts # Main node class
โ โโโ descriptions/ # Field definitions
โ โ โโโ UserDescription.ts
โ โ โโโ ContentDescription.ts
โ โ โโโ TaskDescription.ts
โ โ โโโ FormSubmissionDescription.ts
โ โ โโโ OrgchartDescription.ts
โ โโโ actions/ # Operation implementations
โ โ โโโ user/
โ โ โโโ content/
โ โ โโโ task/
โ โ โโโ formSubmission/
โ โ โโโ orgchart/
โ โโโ utils/
โ โโโ helpers.ts
โโโ credentials/
โ โโโ KeephubApi.credentials.ts
โโโ package.json
โโโ README.md
๐ Development
Build
npm run build
Test
npm run test
Lint
npm run lint
๐ Version History
v1.0.0 (2025-01-09) ๐
- โจ Initial release
- ๐ฅ User management operations
- ๐ฐ Content creation & management
- โ Task template operations
- ๐ Form submission handling
- ๐ Secure API authentication
v1.1.0 (2025-11-10) ๐ฆ
- ๐ Added Orgchart operations (Get, Parent, Ancestors, Children)
- ๐งน Fixed console.log in updateById operation
- ๐ง Code cleanup and optimizations
v1.2.0 (2025-11-12) ๐
- ๐ Added Get By Orgunit task operation
- ๐ Date range filtering support for tasks (Start Date Before/After)
- ๐ฐ Enhanced Content filtering
v1.2.1 (2025-11-20)
- ๐ README updates and documentation improvements
v1.2.2 (2025-11-20)
- ๐งน Build process improvements (added dist folder cleanup script)
v1.3.0 (2025-12-04)
- ๐ Added Get by External Ref operation to Orgchart resource for querying nodes by external reference
๐ค Contributing
Contributions are welcome! ๐
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Setup
git clone https://github.com/RetailInTouch/n8n-nodes-keephub.git
cd n8n-nodes-keephub
npm install
npm run build
๐ License
This project is licensed under the MIT License – see the LICENSE file for details.
๐ Support
Found a bug? Have a feature request?
- ๐ Open an Issue
- ๐ฌ Start a Discussion
โญ Show Your Support
If you find this node useful, please consider:
- โญ Starring this repository
- ๐ฆ Sharing it on social media
- ๐ข Recommending it to the community
Made with โค๏ธ for the automation community
Visit n8n โข View on npm โข GitHub Repo
