n8n-nodes-linq
v0.2.0
Published
Linq API integration for n8n
Maintainers
Readme
n8n-nodes-linq
Linq Partner API (v2) community node for n8n. This node lets you manage chats, messages (with attachments), phone numbers, webhooks, and contacts in Linq from your n8n workflows.
- Package:
n8n-nodes-linq - Node icon: included (SVG)
- API version: v2
- Auth: Integration Token (
X-LINQ-INTEGRATION-TOKEN)
Installation (in n8n)
Using the n8n UI:
- Settings → Community Nodes → Install
- Enter:
n8n-nodes-linq - Restart n8n if prompted
Headless / environment variable:
- Add
n8n-nodes-linqtoN8N_COMMUNITY_PACKAGES(or install with npm in your instance) and restart n8n.
- Add
Credentials
Create a new credential of type "Linq API" and set your Integration Token:
- Header used:
X-LINQ-INTEGRATION-TOKEN: <your token> - The field is hidden in the UI (password type).
Where it's defined:
Node usage
Add the "Linq" node to your workflow. The node provides Resources and Operations that map 1:1 to the documented Linq Partner API endpoints.
- Node implementation:
- class Linq implements INodeType
- Icon is configured at the node-level:
icon: 'file:linq.svg' - SVG file: linq.svg
Supported resources and operations
The node implements all endpoints from your Linq Partner API documentation (v2):
Resource: Chat
- Operations:
- Get Many → GET
/chats(requiresphone_number; pagination supported) - Get One → GET
/chats/:id - Find → GET
/chats/find(requires yourphone_numberandphone_numbers[]of participants) - Create → POST
/chats(requiressend_from, supports group chats viaphone_numbers[], optional display name, initialmessage.text) - Share Contact → POST
/chats/{chat_id}/share_contact(chat_id required; feature must be enabled by Linq)
- Get Many → GET
- Operations:
Resource: Chat Message
- Operations:
- Get Many → GET
/chats/{chat_id}/chat_messages - Get One → GET
/chat_messages/:id - Create → POST
/chats/{chat_id}/chat_messages(supportstext, optionalattachment_urls[], optionalidempotency_key) - Delete → DELETE
/chat_messages/:id - Edit → POST
/chat_messages/:id/edit(text) - React → POST
/chat_messages/:id/reactions(reaction) - Get Reaction → GET
/chat_message_reactions/:reaction_id
- Get Many → GET
- Operations:
Resource: Phone Number
- Operations:
- Get Many → GET
/phone_numbers - Update → PUT
/phone_numbers/:id(optionalforward_to, optionallabel)
- Get Many → GET
- Operations:
Resource: Webhook Subscription
- Operations:
- Get Many → GET
/webhook_subscriptions - Get One → GET
/webhook_subscriptions/:id - Create → POST
/webhook_subscriptions - Update → PUT
/webhook_subscriptions/:id - Delete → DELETE
/webhook_subscriptions/:id
- Get Many → GET
- Operations:
Resource: Contact
- Operations:
- Create → POST
/contacts - Get One → GET
/contacts/:id - Update → PUT
/contacts/:id - Delete → DELETE
/contacts/:id
- Create → POST
- Operations:
Linq Trigger Node
Add the "Linq Trigger" node to automatically start workflows when Linq events occur. The node automatically registers a webhook with Linq when the workflow is activated.
Supported Events:
- Message Sent (
message.sent) - Message Received (
message.received) - Message Read (
message.read) - Call Completed (
call.completed) - Contact Created (
contact.created) - Contact Updated (
contact.updated) - Contact Deleted (
contact.deleted)
- Message Sent (
Configuration:
- Add the "Linq Trigger" node to your workflow
- Select which events should trigger the workflow
- Activate the workflow (this registers the webhook with Linq)
- Linq will send events to your workflow when they occur
Security:
- The node verifies the signature of incoming events using HMAC-SHA256
- Requires the same Linq API credentials as the main node
Example workflows
- Send a group message
- Resource: Chat
- Operation: Create
- Fields:
- Send From (required):
+13175551234 - Display Name (optional):
Project A - Phone Numbers:
+13341234567, +13347654321 - Message Text:
Hello from n8n!
- Send From (required):
- Create a contact
- Resource: Contact
- Operation: Create
- Fields:
- First Name:
John - Last Name:
Doe - Email:
[email protected] - Phone Number:
+15551234567
- First Name:
- Manage webhook subscriptions
- Resource: Webhook Subscription
- Operation: Create
- Fields:
- Webhook URL:
https://example.com/webhooks/linq - Events:
message.sent, message.received, contact.created - Version:
2 - Active:
true
- Webhook URL:
- Update phone number forwarding
- Resource: Phone Number
- Operation: Update
- Fields:
- Phone Number ID:
<id> - Forward To (optional):
+15551230000 - Label (optional):
Support Line
- Phone Number ID:
Development
Requirements:
- Node.js ≥ 20
- npm or pnpm (npm commands shown below)
- n8n local instance if testing end-to-end
Install and build:
cd n8n-nodes-linq
npm install
npm run build
npm run lintLocal link for testing in a local n8n:
# in this folder
npm link
# in your n8n folder
npm link n8n-nodes-linq
# restart n8n, then add "Linq" nodeProject files of interest:
- Node: Linq.node.ts
- Credentials: LinqApi.credentials.ts
- Gulp (copies icons): gulpfile.js
- TypeScript config: tsconfig.json
- Index shim: index.js
Publishing to npm
Ensure metadata is correct in package.json
- name:
n8n-nodes-linq - version: increment for each release, e.g.
0.1.0 - author:
"alexautomates" - keywords include:
n8n-community-node-package files: ["dist"]to publish only built filesn8nblock lists built nodes and credentials indist/
- name:
Build and publish:
npm run build
npm publish --access public- Users can install from the n8n UI (Community Nodes) by typing
n8n-nodes-linq.
Icon / Branding
- Icon file is included at: nodes/Linq/linq.svg
- Node description references it as
icon: 'file:linq.svg', so it renders in the n8n UI.
