Register your interest: Tag @Cody, get an agent
BlogEngineering

Automating LinkedIn outreach: what is actually permitted

LinkedIn prohibits automated messaging and scraping, and enforces it. What you can legitimately automate around outreach, and where the line is.

Osman RamadanOsman Ramadan11 min read

Summarize with AI

Automating LinkedIn outreach: what is actually permitted
On this page

Most articles about automating LinkedIn outreach skip the part where LinkedIn prohibits it. The user agreement forbids automated messaging, connection requests sent by software, and scraping profile data — and enforcement is real, ranging from feature restriction to permanent account loss.

That does not mean nothing around outreach can be automated. It means the automation belongs on your side of the line: research, preparation, sequencing, recording and follow-up, with the sending done by a person. This is a narrower proposition than the tools advertise, and it is the one that does not put an account at risk.

What we'll cover

What LinkedIn prohibits

Automated or scripted messaging, including connection requests and InMails sent by software rather than a person.

Scraping profile or company data, whether by browser extension, headless browser, or anything else that copies data out at scale.

Browser automation against the site, which covers the large category of tools that drive a logged-in session.

Third-party tools that require your credentials, which is most of the outreach tooling sold for this purpose.

Creating multiple or fake accounts, which is how people respond when the first one is restricted.

The official APIs do not offer a way round this. LinkedIn's partner APIs are narrow and are granted for specific programmes; there is no general messaging API for prospecting.

What the risk actually looks like

Detection is behavioural, not just technical. Volume, timing regularity, and patterns that do not look like a person using a browser.

Restriction comes before removal. Features get limited first, which is a warning most people ignore.

Account loss is permanent and takes the network with it — the connections, the history, and the reputation attached to the profile.

It falls on the individual, not the company. The restricted account belongs to a salesperson whose professional network is their own asset.

Extensions requiring credentials add a second risk beyond the terms: a third party holding access to your logged-in session.

The economics are poor anyway. Automated outreach at volume produces low response rates and gradually trains the recipients to ignore the channel, which is the outcome visible in most inboxes.

The legitimate automation surface

Everything up to and after the message, with the message sent by a person.

Building the list, from your own CRM, from data you have licensed, from inbound signals.

Enriching it using sources whose terms permit it — company sites, public filings, news, product documentation.

Prioritising it so a rep's limited outreach capacity goes to the accounts most worth it.

Drafting, with a specific opening line derived from actual research, delivered to the rep to review, edit, and send themselves.

Reminding, so a follow-up that was decided actually happens on the day it was meant to.

Recording, so what was sent, to whom, and what came back exists in the CRM rather than in somebody's memory.

Building it with CodeWords

CodeWords connects to more than 3,000 integrations, so the CRM, the research sources, and wherever your reps work can meet in one automation.

  1. Open CodeWords and start a new automation.
  2. Describe what should happen in plain language to Cody, the automation builder: which accounts, what research, what the draft should contain, and who reviews it.
  3. Authorize the connections — your CRM, the sources you are permitted to read, and Slack or email for delivery to the rep.
  4. Describe the exceptions: thin research, an existing relationship, an account already in an active sequence.
  5. Run it for one rep for a week and compare their response rate against the previous month.

You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.

Research that makes a message worth reading

This is where automation earns its place, because the research is the expensive part and it is entirely permitted.

What the company has said recently — announcements, a funding round, a launch, a role they are hiring for.

What their product does, specifically enough to mention something real rather than a category.

What changed. A new executive, a new market, a new integration. Change is what creates the opening.

Whether anybody at your company already knows them, which is worth more than every other signal combined.

What they have engaged with, where that is observable through legitimate means such as your own site analytics or a webinar list.

Assemble it as a short brief rather than a score. A rep reading four bullet points writes a better message than one reading a number.

Drafting without sending

Generate a draft, never a send. The distinction is the whole point and it should be structural rather than a setting somebody can flip.

One specific opening line referencing the research, since that is the sentence that determines whether the rest is read.

Keep it short. A long automated-looking message on LinkedIn reads exactly as what it is.

Let the rep edit in place and record what they changed, because the pattern of their edits is the best available feedback on the drafting.

Flag thin research. If the automation found nothing specific, say so rather than producing a generic message, since generic is worse than nothing on this channel.

Rate-limit yourself. A rep sending fifteen considered messages a week outperforms one sending two hundred, and does not attract restriction.

Recording what happened

Log the send from the rep's own action, via the CRM, so pipeline reporting is real.

Record the reply, including the negatives, since a tracked no is more useful than an untracked maybe.

Schedule the follow-up as a reminder rather than an automatic message.

Surface the sequence state to the rep in one place, because the most common failure is forgetting where somebody was.

Report per-rep response rates by message type, which is the only way to know whether the research is improving anything.

Suppress duplicates across reps, since two people from the same company approaching the same person is the worst outcome this system can produce.

The channels where automation is permitted

Worth being clear that the constraint is LinkedIn's, not outreach in general.

Email, subject to the applicable law where your recipients are, which in most jurisdictions means an identifiable sender and a way to opt out.

Your own product and site, where the relationship already exists.

Ad platforms, including LinkedIn's own advertising products, which is the sanctioned way to reach an audience at scale on that network.

Events and webinars, where people have given you their details.

Partner and referral channels, which convert better than cold outreach on any platform.

Use LinkedIn for research and for the human message, and let the automated volume live on channels that permit it. That division is both compliant and, on the evidence of most inboxes, more effective.

Measuring outreach honestly

Response rate is the number most teams quote and the one most easily flattered. A few distinctions make the reporting worth acting on.

Separate replies from positive replies. A polite decline is a reply, and counting the two together hides whether the targeting is working.

Attribute to the research, not the template. If the brief found something specific, mark the message as such, and compare those against the ones sent without it.

Count the accounts you chose not to contact, since a system whose main effect is better prioritisation will look like lower volume unless that is reported.

Watch the decline reasons. "Wrong person", "wrong time", and "not a fit" point at three different problems, and only the third is about the product.

Compare against a rep's own baseline, not against another rep, because territory and segment differ more than technique does.

Give it a quarter. Outreach response data at fifteen messages a week is noisy, and reacting to a fortnight of it produces changes that are indistinguishable from chance.

Making it survive

Never store LinkedIn credentials anywhere in the system. If the design would need them, the design is wrong.

Keep the research sources documented, including their terms, since this is the part somebody will ask about.

Handle empty research gracefully — no brief is a legitimate output and should stop the sequence rather than fill it in.

Make suppression lists authoritative, covering existing customers, open opportunities, and anyone who asked not to be contacted.

Report what ran: briefs produced, drafts delivered, sends recorded, and what the reps edited.

Limits worth knowing about

There is no messaging API for general prospecting, and the partner APIs will not be granted for it.

Terms change and enforcement changes with them, so anything built on a current gap is temporary.

Connection and message limits exist for ordinary accounts and are not published precisely.

Sales Navigator does not change the rules about automation; it changes what you can search.

Data you have licensed may have its own restrictions on how it can be used for outreach, which is worth reading before building a list from it.

What to build first

The research brief. Four bullet points about an account, assembled from sources you are permitted to read, delivered to the rep before they write. It sends nothing, risks nothing, and improves the only part of outreach that actually determines whether a message is answered.

Two habits make the difference. Return nothing rather than something generic when the research is thin, because a generic opening line on LinkedIn is worse than no message at all. And record what reps change in the drafts, since that edit history is the most honest feedback you will get about whether the automation is helping or producing work.

Frequently asked questions

Can I automate sending LinkedIn messages?

No. LinkedIn's user agreement prohibits automated messaging, connection requests sent by software, and browser automation against the site. Enforcement ranges from feature restriction to permanent account loss.

Is there a LinkedIn API for outreach?

Not for general prospecting. The partner APIs are narrow and granted for specific programmes, and none of them provides a messaging endpoint for cold outreach.

What happens if I use an automation tool anyway?

Restriction first — limited features as a warning — then potentially permanent removal. The account belongs to the individual, so the cost falls on a salesperson whose network is their own professional asset.

What can I legitimately automate?

Everything except the send: building the list, researching accounts from permitted sources, prioritising, drafting for a human to review and send, reminding about follow-ups, and recording outcomes in the CRM.

Is scraping profiles allowed?

No, by any method, including browser extensions and headless browsers. Research should come from sources whose terms permit it — company sites, public filings, news, product documentation.

Popularity is not permission. Tools requiring your credentials also add a second risk beyond the terms, since a third party then holds access to your logged-in session.

What should an automated research brief contain?

Recent announcements, what the product actually does, what changed at the company, whether anybody internally already knows them, and any engagement you can observe legitimately. Four bullet points, not a score.

Where should automated volume live instead?

Email, subject to the law where your recipients are, plus your own product, ad platforms including LinkedIn's own, events, and partner channels. Keep LinkedIn for research and a human message.

Does sending fewer messages actually work better?

On this channel, yes. Fifteen considered messages a week from a rep typically outperform two hundred templated ones, and do not attract restriction.

How should I measure whether this is working?

Separate positive replies from replies of any kind, compare against each rep's own baseline rather than against other reps, and give it a quarter — at a sensible weekly volume, a fortnight of data is indistinguishable from chance.

What do decline reasons tell me?

"Wrong person", "wrong time" and "not a fit" are three different problems — a targeting problem, a timing problem, and a positioning problem. Only the last is about the product, and collapsing them into one rejection count hides the other two.

Get started today

Your first workflow is free to build.

Describe what you need. Cody handles the build, the connections, and the deployment.