LinkedIn remains the highest-converting B2B social platform. Connecting OpenClaw to LinkedIn automates content publishing, monitors engagement, and handles outreach workflows at scale — without the manual copy-paste grind. Here's what works in early 2025.
What You Can Automate
OpenClaw's LinkedIn channel skill handles three categories of automation. Know which one you need before configuring the app — each requires different OAuth scopes.
- Content publishing — scheduled posts, article shares, image posts on personal profiles or company pages
- Engagement monitoring — track post reactions, comments, and follower growth via the analytics API
- Connection and outreach tracking — log connection requests and message activity (read-only; LinkedIn doesn't allow automated messaging)
The automation limit that trips people up: LinkedIn doesn't allow sending connection requests or messages via API. You can track them, but not send them. Any tool claiming to automate LinkedIn DMs via API is likely scraping, which violates ToS.
LinkedIn OAuth Setup
Create a LinkedIn Developer App at linkedin.com/developers. Add the following OAuth 2.0 scopes: r_liteprofile, r_emailaddress, w_member_social. For company pages, also add r_organization_social and w_organization_social.
Set your redirect URI to https://localhost:8080/callback during development. Run the OAuth flow once to generate your access token and refresh token — you'll paste both into OpenClaw's config.
# LinkedIn OAuth credentials for OpenClaw
LINKEDIN_CLIENT_ID=your_app_client_id
LINKEDIN_CLIENT_SECRET=your_app_client_secret
LINKEDIN_ACCESS_TOKEN=your_oauth_access_token
LINKEDIN_REFRESH_TOKEN=your_refresh_token
Store credentials in OpenClaw's secrets manager. The refresh token is long-lived (12 months) but the access token expires every 60 days — OpenClaw rotates it automatically during channel health checks.
OpenClaw Configuration
In your OpenClaw gateway config file, add the LinkedIn channel block:
channels:
linkedin:
enabled: true
auth:
client_id: ${LINKEDIN_CLIENT_ID}
client_secret: ${LINKEDIN_CLIENT_SECRET}
access_token: ${LINKEDIN_ACCESS_TOKEN}
refresh_token: ${LINKEDIN_REFRESH_TOKEN}
profile:
person_id: "~" # authenticated user
company_id: "12345678" # optional: your company page URN
rate_limit:
calls_per_day: 80 # stay under the 100 limit
Restart the gateway and run openclaw status channels. LinkedIn channel should show as connected with your profile name. A 401 error means your access token has expired — run the refresh flow manually or wait for OpenClaw's next auto-refresh cycle.
Outreach Workflows
The most valuable LinkedIn automation is scheduled content publishing. Create a skill that fires on a weekly cron and posts your prepared content:
skills:
weekly_post:
trigger: cron(0 8 * * 1) # Monday 8am
actions:
- channel: linkedin
action: create_post
text: "This week's insight: {content_block}"
visibility: PUBLIC
For engagement monitoring, poll your recent posts and log reactions to a dashboard or Notion database:
skills:
engagement_check:
trigger: cron(0 18 * * *) # daily 6pm
actions:
- channel: linkedin
action: get_post_analytics
lookback_days: 7
- channel: notion
action: append_to_database
data: "{{event.analytics}}"
Here's where most people stop — they set up posting but skip engagement tracking. Closing that loop shows you which post formats actually drive follower growth.
Common Mistakes
Requesting too many scopes upfront is the number one mistake. LinkedIn's review process gets slower the more scopes you request. Request only what you need now; you can add scopes later.
- Missing refresh token — if you only store the access token, you'll get locked out every 60 days and need to re-run the OAuth flow manually.
- Posting too frequently — LinkedIn's algorithm deprioritizes accounts that post more than once per day. Stick to 3-5 posts per week maximum.
- Using the wrong URN format — company page posts require the full URN format:
urn:li:organization:12345678, not just the ID number. - Ignoring API deprecation notices — LinkedIn retired v1 API endpoints in 2021. Check you're using v2 paths only.
Frequently Asked Questions
Does OpenClaw support LinkedIn API?
Yes. OpenClaw connects to LinkedIn via the official LinkedIn API v2. You need a LinkedIn Developer App with the correct OAuth 2.0 scopes.
Can I post to LinkedIn automatically with OpenClaw?
You can. With the w_member_social scope, OpenClaw can publish text posts, articles, and image posts on behalf of the authenticated user.
What API scopes does OpenClaw need for LinkedIn?
At minimum: r_liteprofile, r_emailaddress, w_member_social for posting. For company page posts you also need r_organization_social and w_organization_social.
Is there a rate limit for LinkedIn automation?
LinkedIn enforces 100 API calls per day for basic apps. Posting too frequently also risks account flags. Stay under 80 calls/day to leave headroom.
Can OpenClaw post to LinkedIn company pages?
Yes, with the correct organization scopes. You need admin access to the company page and must request the organization social scopes in your app.
How do I refresh LinkedIn OAuth tokens?
LinkedIn access tokens expire after 60 days. OpenClaw's LinkedIn channel handles refresh token rotation automatically if you provide the refresh token during setup.
S. Rivera builds growth automation systems for B2B SaaS companies. At aiagentsguides.com she covers social channel integrations and outreach workflows.