n8n-nodes-easyflow
v0.2.6
Published
n8n community node for EasyFlow CRM — Records, Notes, Documents, and a generic API passthrough.
Maintainers
Keywords
Readme
EasyFlow CRM — n8n Community Node
An n8n community node for EasyFlow CRM. Lets self-hosted n8n users create, update, search, and delete records, add notes, manage documents, and make raw API calls — the same operations available in the EasyFlow Make.com custom app.
Installation
In your self-hosted n8n instance: Settings → Community Nodes → Install and enter:
n8n-nodes-easyflowCredentials
Add an EasyFlow CRM API credential with:
| Field | Value |
|---|---|
| Base URL | https://<project-ref>.supabase.co/functions/v1/api |
| Anon / Publishable Key | Your Supabase project anon key |
| Client ID | Organization API client ID (from EasyFlow tenant settings) |
| Client Secret | Organization API client secret |
The same client_id/client_secret values used in your Make.com "Organization tenant token" connection work here.
Supported operations
| Resource | Operations | |---|---| | Entity | List, Get By ID | | Record | List, Get, Create, Update, Delete, Search | | WhatsApp Template | Render | | Note | Add | | Document | Create From Template, Get, List, Send, Unpublish, Set Variable | | Org Variable | List, Get, Get Multiple, Create, Update, Set Multiple, Delete | | Google Calendar | Create Event, List Events, Search Events, Get Event, Update Event, Delete Event, Availability | | Gmail | Send, Get Many, Get, Reply, Delete Message, Mark as Read, Mark as Unread, Add Labels, Remove Labels, Create/Get/List Labels, Drafts, Threads | | Google Drive | Search, Copy, Create From Text, Delete, Download, Move, Share, Update, Upload, Folders, Shared Drives | | Google Docs | Create, Get, Update | | Google Sheets | Read, Append, Append or Update, Clear, Create, Delete, Update | | WhatsApp (WAHA) | Send Text/Image/Voice/Video/File/Location/Contact/Poll/Buttons/Link Preview, List Chats, Get History, Get Contact, Get Avatar, Get Media, Mark Seen, Typing | | Generic | Make an API Call |
WhatsApp Trigger
EasyFlow WhatsApp Trigger is a separate trigger node (not a resource on the main EasyFlow CRM node). Pick a WAHA connection and it starts the workflow whenever an inbound WhatsApp message arrives on that connection.
Activating the workflow registers a subscription (POST /whatsapp/trigger-subscriptions) and stores the returned subscription_id and a per-subscription webhookSecret in the workflow's static data; deactivating it deletes the subscription. Every delivery is verified against that stored secret via the X-EasyFlow-Signature header before the workflow executes.
Only WAHA connections support triggers — Meta WhatsApp Cloud connections aren't listed in the connection picker.
Local development / smoke testing
cd integrations/n8n && npm install --ignore-scripts && npm run build- In your local n8n, point
N8N_CUSTOM_EXTENSIONSat this package'sdist/folder (or symlink-install), then restart n8n. - Add an EasyFlow CRM API credential using your local Supabase instance's URL and anon key plus a valid tenant client_id/client_secret.
- Search Records smoke test — add an EasyFlow CRM node, Resource = Record, Operation = Search, pick any entity, run. Confirm output items each have
id/data/computed/created_at/updated_at. (Mirrors Make.com's "Test - Search Records" scenario.) - Generic API Call smoke test — add another EasyFlow CRM node, Resource = Generic, Method = GET, Path =
/entities/1/records, run. Confirm raw{data, total, limit, offset}shape. (Mirrors Make.com's "Test - Make an API Call" scenario.) - Create Record — Create operation, pick an entity, map one field via the resourceMapper, run. Confirm the record appears in EasyFlow.
- Create Document From Template — pick a published template, run. Confirm
{id, document_number}returned. - Render WhatsApp Template — Resource = WhatsApp Template, Operation = Render, pick a template and pass a matching record ID. Confirm rendered placeholder values are returned and no WhatsApp message is sent.
- Resolve Entity Number — Resource = Entity, Operation = Get By ID, pass an entity UUID. Confirm the output includes
entity_number, then use that value in a Record operation.
Publishing
npm run n8n:release -- --bump patch
npm run n8n:release -- --version 0.1.1 --publishThe release script runs the n8n test suite, builds the package, and runs
npm pack --dry-run. It only publishes to npm when --publish is passed.
Use --otp 123456 when npm requires a one-time password.
After publishing, update the production GKE package pins from the repo root:
npm run n8n:update-cluster-package -- 0.1.1