in LinkedIn API Live in production. Email, messengers & calendars next
Pricing Blog
Get API key Sign in

n8n LinkedIn Node

n8n LinkedIn Node

Two different nodes answer to that name, and the one n8n ships cannot send a thing.

Updated September 2026 · 12 min read

n8n’s built-in LinkedIn node has exactly one operation, Post: Create. Invitations, messages, enrichment and people search all come from a community node you install yourself. That node is n8n-nodes-gtm-api, and because n8n has not put it in the verified tier, it installs on self-hosted n8n only.

So the first question is not which fields to fill in. It is where your n8n runs, because that decides which of the two nodes you can have. After that it is one credential, four actions and a trigger, acting through a LinkedIn account you connect yourself. On that stack, gtm-api.com reports 20,000+ accounts at under a 1% ban rate.

Which of the two nodes you need

Search the n8n panel for LinkedIn and you get the built-in node, which n8n describes in one line on its own reference page: “Use the LinkedIn node to automate work in LinkedIn, and integrate LinkedIn with other applications. n8n supports creating posts.” Creating posts is the whole surface. There is no trigger, no messaging resource and no search.

Node What it covers How you get it n8n Cloud
LinkedIn (built in) Post: Create, as a person or an organization Already in the panel Yes
n8n-nodes-gtm-api Send an invitation, send a message, enrich a person, search people, plus a trigger on three LinkedIn events Community node, installed from npm Not while it is unverified
HTTP Request Every endpoint either node leaves out Already in the panel Yes
🔑 The one line that decides your installn8n’s own community-node documentation puts it plainly: “Unverified community nodes aren’t available on n8n cloud and require self-hosting n8n.” Verification is n8n’s call, not the package author’s, so on Cloud the answer today is the HTTP Request node.

Installing the community node

n8n documents four install routes, and they are not equivalent. “There are four ways to install community nodes”, its documentation says: from the nodes panel for verified nodes only, from the GUI for anything on npm, manually from the command line, and from environment variables for a deployment pipeline. On a self-hosted instance the GUI route is the one to use.

  • Settings, then Community Nodes, then Install. The flow asks for an npm package name. Enter n8n-nodes-gtm-api for the current release, or append @1.0.4 to pin the version this page was written against.
  • Accept the risk checkbox. n8n words it as “I understand the risks of installing unverified code from a public source”, and the risks page behind it is worth reading once: a community node “has full access to the machine that n8n runs on”.
  • Do it as an Owner or an Admin. n8n restricts npm installs to those two roles on self-hosted instances, so a member account will not see the button.
  • Pin the version deliberately. A dist-tag such as @beta is resolved once, at install time, and does not follow later releases. A bare package name takes whatever is current on the day you install.

Two things can stop the install outright. n8n keeps a blocklist of packages it refuses, and a self-hosted instance can have community nodes switched off entirely with N8N_COMMUNITY_PACKAGES_ENABLED=false, which is a common setting on managed deployments somebody else administers.

The package itself is public and checkable before you install anything. Version 1.0.4 was published on 27 August 2026, carries an MIT licence, requires Node 20 or newer, and declares no runtime dependencies at all. The npm registry also serves a signed provenance attestation for it, which ties the published tarball to a GitHub Actions run on the gtm-api/n8n-nodes-gtm-api repository at tag v1.0.4. Those two properties, zero runtime dependencies and provenance from a GitHub Action, are the two hardest requirements in n8n’s own verification guidelines.

What verification would change is discovery, and it is not cosmetic. n8n’s guidelines describe the verified experience as: “Any user with verified community nodes enabled can discover and install verified nodes from n8n’s nodes panel across all deployment types (self-hosted and n8n Cloud).” No npm name to type, no risk checkbox, and Cloud included.

The credential, and where it is reusable

The node ships one credential type, and n8n lists it under the display name LinkedIn API. It has a single field, an API key, stored as a password field. The node sends it as an ordinary bearer header, which is worth knowing because it means nothing about this credential is exotic.

what the credential puts on every requesthttp
Authorization: Bearer <your API key>
Content-Type:  application/json

base URL   https://app.gtm-api.com/linkedin/v4
trigger    https://app.gtm-api.com/orchestration/v4

The credential carries a test request, so n8n validates the key the moment you save it by asking the API for one connected account. A wrong or revoked key fails there, in the credential dialog, at save time, long before a production run depends on it. Keys come from the dashboard at app.gtm-api.com, and the free plan issues one without a card.

The reuse is the part most people miss. n8n’s HTTP Request node supports a Predefined Credential Type, and its documentation is explicit that this covers “integrations supported by n8n, including both built-in and community nodes”. Once the LinkedIn API credential exists, an HTTP Request node can select it and call any endpoint the node itself does not wrap, with no second credential and no token pasted into a header field.

The four actions

The action node presents four resources with one operation each. It is a deliberately small surface: these are the four calls an outreach workflow makes over and over, and everything rarer goes through HTTP Request on the same credential.

  • Connection Request, Send. Sends the invitation, with an optional note and a flag that lets it fall back to a note-free invite when the sender has run out of personalised notes.
  • Message, Send. Sends a direct message, either into an existing conversation by its identifier or to a member by their id.
  • Person, Enrich. Returns the lite profile for a person, addressed by the public identifier from their profile URL.
  • People Search, Search by URL. Takes a LinkedIn search URL that you built in the LinkedIn interface and returns one page of results, with a page parameter to walk the rest.

Every one of them starts with the same field, and the node renders it as a dropdown. Sender is populated live from the accounts on your team, so the workflow author picks a connected LinkedIn account by name and never handles an identifier. That single choice is what makes an n8n workflow multi-account: the same three nodes, driven from a spreadsheet column of senders, spread a campaign across a fleet. The arithmetic of how many accounts a target volume actually needs is on Scaling LinkedIn outreach.

The ordering trap, in one sentence. The invitation takes a member URN in the ACoAA... form and does not accept a profile URL, so a sheet of profile URLs has to pass through Person: Enrich before it can reach Connection Request: Send. The three-node shape that does this, and two more workflows built on it, are on Automate LinkedIn with n8n.

The trigger node and its three events

The package’s second node is a trigger, and it does something the built-in LinkedIn node cannot do at all: it starts a workflow when something happens on LinkedIn. Three events are on the dropdown.

  • Connection Request Accepted. The event most sequences are actually waiting for, and the one that makes a polling loop unnecessary.
  • Message Received. An inbound reply, which is the trigger for routing a conversation into Slack, a CRM or a task queue.
  • Invitation Received. Somebody has invited the connected account, which is the inbound half most outreach tooling ignores.

The registration is automatic in both directions. Activating the workflow creates the webhook subscription against the orchestration service and stores its identifier in the workflow’s own static data. Deactivating it deletes that subscription. Nothing is left behind pointing at a URL that has stopped answering, which is the usual way a stale subscription outlives the workflow that made it.

Two n8n behaviours decide whether an event ever lands. A test webhook is registered only while the editor is listening and stays active for 120 seconds, so a subscription made against the test URL works once during setup and then goes quiet. And the target has to be reachable: the platform refuses a target URL that is not public https, so a laptop instance behind a firewall needs a tunnel or a public hostname before the first event arrives.

On n8n Cloud, for now

Cloud users are not stuck, they just take a different route to the same API. Two options, and the second one is the better fit if the workflow already has an AI agent in it.

The first is the HTTP Request node with the same bearer credential, which is how every one of these calls worked before the package existed and how the recipes on Automate LinkedIn with n8n are written. Nothing about that route is a downgrade in capability. It costs more nodes and more field-typing, and it reaches the whole API, well past the four operations the node wraps.

The second is the MCP Client Tool node, a cluster sub-node that hands an external MCP server’s tools to an n8n agent. It supports bearer, generic header, multiple-header and OAuth2 credentials, and its Tools to Include setting takes All, Selected or All Except, which matters because handing an agent every tool on a large server is how you burn a context window. Setup per client, and what an agent can actually do once connected, are on LinkedIn MCP server.

Whichever route you take, the pacing does not belong in n8n. Wait nodes and schedule triggers produce a fixed cadence, and a fixed cadence is a signature. Per-action daily budgets and randomised spacing are enforced on the server, per connected account, so a workflow can push its whole queue and let the budget hold it back. The published caps that sits under are on LinkedIn limits.

Frequently Asked Questions

How do I install a community node in n8n?

On a self-hosted instance, go to Settings, then Community Nodes, then Install, enter the npm package name, and accept the risk checkbox. Only Owner and Admin roles can do it. n8n also documents a command-line install and an environment-variable install for deployment pipelines, and a fourth route from the nodes panel that works for verified nodes only.

Can I install the gtm-api node on n8n Cloud?

Not while it is unverified. n8n’s documentation states that unverified community nodes are not available on n8n Cloud and require self-hosting. n8n decides which community nodes are verified. On Cloud the same API is reached through the HTTP Request node with a bearer credential, or through the MCP Client Tool node if the workflow is agent-driven.

Which LinkedIn actions does the community node support?

Four, one per resource: send a connection request, send a message, enrich a person profile, and search people by URL. Each starts with a Sender dropdown populated from your connected LinkedIn accounts. A separate trigger node covers three inbound events. Anything outside those four goes through the HTTP Request node on the same credential.

Where does the API key the node asks for come from?

From the GTM API dashboard at app.gtm-api.com, and the free plan issues one with no card. In n8n the credential appears as LinkedIn API with a single API Key field, and it is sent as a bearer header. Saving it runs a test call against your connected accounts, so an invalid key fails in the credential dialog at save time.

What happens to the webhook when I deactivate the n8n workflow?

The trigger node deletes its own subscription. Activating the workflow registers a webhook against the orchestration service and stores the subscription identifier in the workflow’s static data, and deactivating it issues the delete. That is why a deactivated workflow leaves nothing behind pointing at a URL that no longer answers.

Sources & Further Reading

Install the node, or call the same API from an HTTP step.

One credential, four actions, a trigger on three LinkedIn events, and sending budgets enforced per account before anything reaches LinkedIn. On that stack, gtm-api.com reports 20,000+ accounts at under a 1% ban rate. Free plan, then from $10 per account at volume.

Get your API key →

Last updated: September 2026 · n8n behaviour re-read on n8n’s own documentation, and the package metadata and provenance read from the npm registry, on 1 September 2026