npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

n8n-nodes-clientify

v0.2.4

Published

N8N node for Clientify CRM integration

Readme

n8n-nodes-clientify

npm version License: MIT

Connect n8n to Clientify CRM using the Model Context Protocol. Access contacts, companies, deals, tasks, and more through simple workflow nodes.

Table of Contents

Installation

Start with the GUI method - it's the easiest.

In n8n (GUI)

  1. Go to SettingsCommunity Nodes
  2. Click Install
  3. Enter: n8n-nodes-clientify
  4. Click I understand the risks and then Install
  5. Restart n8n (important - it won't show up until you do)

Via npm (Command Line)

cd ~/.n8n/nodes
npm install n8n-nodes-clientify
# Restart n8n

Docker

⚠️ Don't forget to persist the nodes directory, or you'll lose the node on restart:

volumes:
  - n8n_data:/home/node/.n8n

Or enable auto-reinstall:

environment:
  - N8N_REINSTALL_MISSING_PACKAGES=true

Prerequisites

You'll need:

  • n8n 0.180.0+
  • Node.js 20.15+
  • Active Clientify CRM account
  • JWT token from Clientify MCP server

Configuration

Step 1: Obtain Your Clientify MCP Token

  1. Log into your Clientify account
  2. Navigate to API settings or contact your Clientify administrator
  3. Generate or copy your MCP authentication token (JWT format)

Step 2: Add Credentials in n8n

  1. In n8n, go to CredentialsNew
  2. Search for "Clientify MCP API"
  3. Enter your Authentication Token (JWT)
  4. Click Save

Step 3: Use the Node

  1. In your workflow, click + to add a node
  2. Search for "Clientify"
  3. Select the Clientify node
  4. Choose your saved credentials
  5. Select an operation from the dropdown
  6. Configure the parameters for your operation

Available Operations

26 operations available from the Clientify MCP API:

📊 Companies

  • List Companies - Browse all companies with pagination
  • Get Company - Fetch full company details by ID
  • Create Company - Add a new company to your CRM
  • Update Company - Modify existing company info
  • Delete Company - Remove a company
  • Search Companies - Find companies by name or criteria

👥 Contacts

  • List Contacts - View all contacts or search for specific ones
  • Get Contact - Look up a contact's information by ID
  • Create Contact - Add someone new to your CRM
  • Update Contact - Change contact details
  • Delete Contact - Remove a contact

💼 Deals

  • List Deals - See all deals with filters and pagination
  • List Deals By Stage - Show deals in a specific pipeline stage
  • Get Deal - Pull complete deal data by ID
  • Create Deal - Start tracking a new opportunity
  • Update Deal - Modify deal information
  • Delete Deal - Remove a deal
  • Mark Deal Won - Close a deal as won
  • Mark Deal Lost - Mark a deal as lost

✅ Tasks

  • List Tasks - View all tasks with pagination
  • Get Task - Retrieve task details by ID
  • Create Task - Add a new activity or to-do
  • List Activity Types - See available task categories

⚙️ Configuration & Utilities

  • List Pipelines - Get your sales pipeline configurations
  • Get Current User - Check authenticated user details
  • Get Current Time - Grab current timestamp with timezone

Trigger Events

NEW in v0.2.0! Triggers are way better than polling. The Clientify Trigger node enables automatic workflow execution when events occur in Clientify CRM. With 16 event types covering contacts, companies, deals, and tasks, you can automate workflows instantly when things happen in your CRM.

How triggers work

Add a Clientify Trigger node, pick an event (like "Contact Created"), and activate your workflow. You'll get a unique webhook URL. Configure that URL in Clientify's webhook settings, and boom - your workflow runs automatically whenever that event fires.

16 Available Triggers

| Event | Trigger Name | When It Fires | Common Use Cases | |-------|--------------|---------------|------------------| | 👥 Contacts | | | | | | Contact Created | New contact added | Welcome email, create follow-up task, add to CRM | | | Contact Updated | Contact details changed | Sync to other systems, log changes, update records | | | Contact Deleted | Contact removed | Archive data, remove from email lists, cleanup | | 📊 Companies | | | | | | Company Created | New company added | Research company, assign account manager, notify team | | | Company Updated | Company details changed | Update external systems, track changes | | | Company Deleted | Company removed | Clean up related data, archive records | | 💼 Deals | | | | | | Deal Created | New deal/opportunity created | Notify sales team, create tasks, log in analytics | | | Deal Updated | Deal details changed | Track value changes, update forecasts, log activity | | | Deal Won | Deal closed successfully | Send celebration, create invoice, start onboarding | | | Deal Lost | Deal closed unsuccessfully | Add to nurture campaign, analyze loss reason | | | Deal Stage Changed | Deal moved to different stage | Stage-specific actions (send pricing, generate contract) | | | Deal Deleted | Deal removed | Log deletion, archive data | | ✅ Tasks | | | | | | Task Created | New task added | Add to calendar, notify assignee, sync to project tools | | | Task Completed | Task marked complete | Log activity, update metrics, trigger next steps | | | Task Due Soon | Task approaching due date | Send reminder to assignee | | | Task Overdue | Task past due date | Escalate to manager, send urgent notification |

Setup Instructions

In n8n:

  1. Add "Clientify Trigger" node to your workflow
  2. Select the event from the dropdown
  3. Choose your Clientify MCP credentials
  4. Save and activate the workflow (toggle ON)
  5. Click the trigger node → Expand "Webhook URLs"
  6. Switch to "Production URL" tab
  7. Copy the webhook URL

In Clientify:

  1. Go to Settings → Webhooks
  2. Click "Add Webhook"
  3. Select the matching event (e.g., "contact.created")
  4. Paste your n8n webhook URL
  5. Set status to "Active"
  6. Save

Test It: Create a contact, deal, or task in Clientify → Check n8n executions → Your workflow should have run!

Data You'll Receive

Webhook data is automatically flattened for easy access in your workflows. Event payloads look like this:

Contact Events (contact.created, contact.updated, contact.deleted)

{
  "event": "contact.created",
  "timestamp": "2025-10-02T15:30:00Z",
  "contact_id": 12345,
  "first_name": "John",
  "last_name": "Doe",
  "email": "[email protected]",
  "phone": "+1234567890",
  "company_id": 456,
  "company_name": "Acme Corp",
  "changes": { /* only for .updated events */ }
}

Access with: {{$json.first_name}}, {{$json.email}}, {{$json.company_name}}

Company Events (company.created, company.updated, company.deleted)

{
  "event": "company.created",
  "timestamp": "2025-10-02T18:00:00Z",
  "company_id": 999,
  "name": "Tech Startup Inc",
  "domain": "techstartup.com",
  "industry": "Technology",
  "size": "50-100",
  "country": "USA"
}

Access with: {{$json.name}}, {{$json.domain}}, {{$json.industry}}

Deal Events (deal.created, deal.updated, deal.won, deal.lost, deal.stage_changed, deal.deleted)

{
  "event": "deal.won",
  "timestamp": "2025-10-02T23:00:00Z",
  "deal_id": 98765,
  "title": "Enterprise License Sale",
  "value": 60000,
  "currency": "USD",
  "contact_id": 12345,
  "contact_name": "John Doe",
  "company_id": 999,
  "company_name": "Tech Startup Inc",
  "stage_name": "Won",
  "won_at": "2025-10-02T23:00:00Z"
}

Access with: {{$json.title}}, {{$json.value}}, {{$json.contact_name}}

Task Events (task.created, task.completed, task.due_soon, task.overdue)

{
  "event": "task.created",
  "timestamp": "2025-10-03T03:00:00Z",
  "task_id": 5555,
  "title": "Follow up with John Doe",
  "description": "Discuss pricing options",
  "type": "call",
  "contact_id": 12345,
  "contact_name": "John Doe",
  "deal_id": 98765,
  "assigned_to_name": "Sales Rep",
  "due_date": "2025-10-05"
}

Access with: {{$json.title}}, {{$json.contact_name}}, {{$json.due_date}}

Important Notes

  • Event names are case-sensitive - use contact.created, not Contact.Created
  • Each workflow gets a unique webhook URL - you'll need to update Clientify if you recreate the workflow
  • ⚠️ Common mistake: Workflows must be active to receive webhooks - toggle that switch on!
  • All payloads include a _raw field with the original data if you need it
  • Update events show what changed in the changes object (old vs new values)
  • 💡 Tip: Session IDs expire after each request. Don't try to reuse them across workflow runs.

Usage Examples

We recommend starting with List Contacts to verify your setup works.

Example 1: List All Contacts

Retrieve a paginated list of all contacts in your CRM.

Configuration:

  • Operation: List Contacts
  • Parameters: Leave empty for all contacts, or add filters

Output: Array of contact objects with names, emails, phone numbers, and IDs.

[
  {
    "id": 123,
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]",
    "phone": "+1234567890",
    "company_id": 456
  }
]

Example 2: Auto-Send Welcome Email (Using Trigger)

NEW in v0.2.0!

Automatically send a welcome email when a new contact is created.

Workflow:

  1. Clientify Trigger

    • Event: Contact Created
  2. Send Email

    • To: {{$json.email}}
    • Subject: Welcome {{$json.first_name}}!
    • Body: Welcome message
  3. Create Task

    • Title: Follow up with {{$json.first_name}} {{$json.last_name}}
    • Contact ID: {{$json.contact_id}}
    • Due: 3 days from now

Result: When someone creates a contact "Jane Smith" in Clientify:

  • Jane automatically receives welcome email
  • Follow-up task is created for sales team
  • All happens instantly without manual intervention

Example 3: Deal Won Notification (Using Trigger)

NEW in v0.2.0!

Notify your team instantly when a deal closes.

Workflow:

  1. Clientify Trigger

    • Event: Deal Won
  2. Slack (or Email)

    • Message: 🎉 Deal Won! {{$json.title}} - ${{$json.value}} - {{$json.contact_name}}
    • Channel: #sales-wins
  3. Clientify (Action Node)

    • Operation: Create Task
    • Title: Onboard {{$json.contact_name}}
    • Deal ID: {{$json.deal_id}}

Result: When a deal is marked as won:

  • Team gets instant Slack notification
  • Onboarding task is automatically created
  • No manual steps required

Troubleshooting

Node not showing up?

Restart n8n first. Seriously - it won't appear until you do a full restart.

Still nothing? Clear your browser cache (Ctrl+Shift+Del) and search for "Clientify" in the node panel. Not the package name, just "Clientify".

Check Settings → Community Nodes to confirm it installed. If it's there but still not showing up, something's cached - try a hard refresh (Ctrl+F5).

Getting auth errors?

Your token's probably expired or invalid. Double-check it in your Clientify settings, or generate a fresh one. Happens to everyone.

Make sure you're using the MCP token, not a regular API key - they're different things. The MCP token starts with your account identifier.

Missing parameter errors?

Look for the red asterisk (*) next to field names - those are required.

Some operations need IDs from previous steps. Run a Get operation first to grab the ID, then pass it to Update or Delete. You'll save yourself a headache. Example: Get Contact → use {{$json.id}} in Update Contact.

Empty results?

Your token might not have permission to access that data. Check your Clientify user permissions first.

Pro tip: Try listing without filters to confirm basic access works. If you see results, then it's your filters that need adjusting.

Development & Contribution

This is an official Clientify node. Contributions are welcome!

Repository: https://github.com/contacteitor/clientify_n8n

Report Issues: https://github.com/contacteitor/clientify_n8n/issues

Documentation: See the repository for full documentation

Support

  • Issues & Bugs: https://github.com/contacteitor/clientify_n8n/issues
  • Email: [email protected]
  • Clientify Documentation: https://mcp.clientify.com/docs

Version History

v0.2.0 (2025-10-02) - Triggers!

Added webhook-based triggers for real-time automation. ~~28 operations~~ 16 trigger events covering contacts, companies, deals, and tasks. Way faster than polling.

v0.1.0 (2025-10-01) - Initial release

26 operations for managing contacts, companies, deals, and tasks through the MCP API.

License

MIT License - see LICENSE file for details.

Copyright (c) 2025 Clientify


Made with ❤️ by Clientify

This is an official Clientify node. n8n is a trademark of its respective owner.