Send LinkIntel your posts from anything

One endpoint, one secret. Whatever publishes your posts sends the URL, and LinkIntel measures what happened next. Works with Zapier, Make, n8n, or a single curl command.

Why this works

The identifier is the whole story.

LinkedIn will measure any post you name but will not list your posts, so the list has to come from whatever published them. An integration can only read that list from a tool that both exposes it and stores the right identifier, which most do not.

So this route reverses the direction. Instead of LinkIntel going and fetching, your tool tells LinkIntel each time it publishes. Anything that can make an HTTP request qualifies, which is very nearly everything.

The one rule is the same rule as everywhere else: the URL you send must carry a share or ugcPost URN. An activity id, which is what an ordinary LinkedIn permalink contains, is rejected with an explanation rather than accepted and left permanently unmeasurable.

Setting it up

Connecting Webhook

  1. 01

    Create your webhook

    On the LinkIntel setup page, under step 3. You get an endpoint and a secret. The secret is shown once and only registers post URLs, so it is safe in a third-party automation tool where your access key would not be.

  2. 02

    Post a URL when you publish

    Send {"url": "..."} with the secret as a bearer token. Field names are flexible: url, post_url, link, permalink, post_link and a few others all work, because most automation tools cannot rename the field they are passing on.

  3. 03

    Check it worked

    The response says what was registered, what was already known, and what was rejected and why. Sending the same post twice is a no-op, so a retrying automation cannot create duplicates.

What you get

  • Works with any tool that can make an HTTP request, including ones with no LinkedIn integration
  • Registers posts as they publish, so nothing is waiting on you to remember an import
  • Idempotent: the same URL twice changes nothing, so retries are safe
  • Rejections are explained rather than silent, so a misconfigured automation is visible immediately

What it will not do

  • It cannot backfill. A webhook only knows about posts sent to it after you set it up, so your back catalogue still needs a scheduler connection or an export upload.
  • You have to wire it up in whatever publishes. That is a few minutes in Zapier or n8n, and a line in a script, but it is not zero.
  • Fifty posts per request, and 512 KB per body. A full history is a file upload, not a webhook.
  • The URL has to carry a share or ugcPost URN. If the tool sending the hook only knows the ordinary permalink, the post cannot be measured and LinkIntel will say so.

Questions

Webhook, specifically

Is the webhook secret the same as my access key?
No, and deliberately so. Your access key starts lnki_ and reads your whole analytics history. The webhook secret starts lnkw_ and can only register post URLs. That is why it is safe to paste into Zapier or n8n.
What happens if my automation fires twice?
Nothing. Posts are stored by URN, and registering one that already exists deliberately never touches its metrics, because those cost LinkedIn request budget to obtain. Retries are always safe.
Can I send several posts at once?
Yes. Send an array under "posts" or "urls", up to fifty per request. A plain text body of one URL per line works too, which is the easy case for a shell script.
How do I rotate the secret?
Press Replace secret on the setup page. Unlike your access key, replacing a webhook secret stops the old one working immediately, because it has exactly one holder and the reason to rotate is usually that it leaked. Update your automation at the same time.
Why was my post rejected?
Almost always because the URL carried an activity id rather than a share or ugcPost URN. LinkedIn's analytics API cannot resolve an activity id, so accepting it would register a post that could never get numbers. The response says which URL and why.