The LinkedIn module lets your AI agent publish thought-leadership posts, share business updates, and grow your professional network — all on autopilot. LinkedIn's API requires you to create a developer app and generate a personal access token scoped to w_member_social (the permission to post on your behalf).
This guide walks you through every step: creating the app, requesting the right product, generating a token, and entering your credentials into AgentGrow.
What You Will Need
| Field | What it is |
|---|---|
| LINKEDIN_PAGE_URL | The URL of your LinkedIn personal profile (e.g. https://www.linkedin.com/in/yourname/) |
| LINKEDIN_ACCESS_TOKEN | An OAuth access token that authorizes your agent to post on your LinkedIn profile |
Prerequisites
- A LinkedIn account (personal profile at linkedin.com)
- A web browser — no coding or command-line knowledge required
- Optional: a LinkedIn Company Page (only needed if your account is used to verify the app during setup)
Part 1 — Create a LinkedIn App
LinkedIn requires you to have a developer app registered in their portal before you can generate an access token. This is a one-time setup that takes about five minutes.
Go to the LinkedIn Developer Portal
Open linkedin.com/developers in your browser. Sign in with your LinkedIn account if prompted.
Create a new app
Click Create app (top-right or the prominent button on the page). Fill in the required fields:
- App name: Something descriptive, like
AgentGrow LinkedIn Publisher - LinkedIn Page: You must associate the app with a LinkedIn Company Page. If you do not have one, create a free Company Page at linkedin.com/company/setup/new/ — it can be a personal business page with your name.
- App logo: Upload any square image (your company or personal logo works fine)
- Legal agreement: Check the box to agree to LinkedIn's API Terms of Use
Click Create app.
Request the "Share on LinkedIn" product
After your app is created, go to the Products tab inside your app settings. You will see a list of available LinkedIn API products. Find "Share on LinkedIn" and click Request access.
LinkedIn will review your request. In most cases, the Share on LinkedIn product is approved automatically within a few seconds — the page will refresh and show it as Added. This product grants the w_member_social scope that lets your agent post on your behalf.
openid, profile, and email scopes, which are required alongside w_member_social when generating a token via the OAuth tool.
Verify your app
Go to the Settings tab of your app. Under App settings, click Verify next to the Company Page you associated. LinkedIn will send a verification request to the admins of that Company Page (which is you, if you own the page). Approve the verification from the notification in your LinkedIn account.
Part 2 — Get an Access Token
LinkedIn provides a built-in OAuth token generator inside the Developer Portal. This is the easiest way to get a personal access token without writing any code.
Add the OAuth redirect URI
In your app, go to the Auth tab. Under OAuth 2.0 settings, click the pencil icon next to Authorized redirect URLs for your app. Add this exact URL:
Click Update to save.
Open the OAuth Token Generator
In the left navigation of the Developer Portal, click Tools → OAuth token tools. (Direct URL: linkedin.com/developers/tools/oauth/token-generator.) Select your app from the dropdown.
Select the required scopes
In the Member token tools section, check all four scopes:
openid— required for OpenID Connect (identity)profile— access to your profile name and photoemail— access to your email addressw_member_social— required — allows posting on your behalf
Request and authorize the token
Click Request access token. LinkedIn will redirect you to an authorization page asking you to grant the app the selected permissions. Click Allow.
You will be redirected back to the OAuth token tools page and your access token will be shown:
Access tokens are long strings starting with AQX or similar. Copy the entire token.
This token is your LINKEDIN_ACCESS_TOKEN. Keep it private — it grants the ability to post on your LinkedIn profile.
Part 3 — Enter Credentials in AgentGrow
Find your LinkedIn profile URL
Go to your LinkedIn profile. Copy the URL from your browser's address bar. It will look like one of these:
This is your LINKEDIN_PAGE_URL. Use your full profile URL including the trailing slash.
Open your Integrations page
Log in to your AgentGrow dashboard at agentgrow.io/user/integrations.
Configure the LinkedIn module
Find the LinkedIn module card and click Configure (or Reconfigure if you are updating an existing token). Enter:
- LinkedIn Profile URL: your full profile URL (e.g.
https://www.linkedin.com/in/yourname/) - Access Token: the token you copied from the LinkedIn OAuth token tool
Click Save & Restart Agent. Your agent pod will restart in about 30 seconds with the new credentials loaded.
Verify the connection
After the restart, your agent is ready to post on LinkedIn. Check the Dashboard activity feed for your first LinkedIn post, or send your agent a Telegram message asking it to publish a test post.
Token Renewal — What to Do When Your Token Expires
LinkedIn access tokens last approximately 60 days. When your token expires, your agent will log an error and LinkedIn posts will stop. Here is how to renew it:
Generate a new token
Return to linkedin.com/developers/tools/oauth/token-generator, select your app, check the same four scopes (openid, profile, email, w_member_social), and click Request access token. Authorize again and copy the new token.
Update AgentGrow
Go to agentgrow.io/user/integrations, click Reconfigure on the LinkedIn module, paste your new access token, and click Save & Restart Agent.
Set a calendar reminder
Set a repeating reminder for every 50 days so you renew the token before it expires. LinkedIn does not currently offer a way to automatically refresh member tokens without additional OAuth infrastructure.
Troubleshooting
I do not see "Share on LinkedIn" in the Products tab
Make sure your app is fully created and verified. Some products only appear after:
- Your app is associated with and verified by a Company Page
- You have agreed to LinkedIn's API Terms of Use
- Your LinkedIn account is in good standing
Try refreshing the Products tab. If the product still does not appear, log out of the Developer Portal and log back in.
The OAuth token tool says "insufficient permissions"
This means w_member_social was not granted to your app. Go to the Products tab and verify that Share on LinkedIn shows as Added. If it still shows Request access, click it and wait for approval. Approval is usually instant, but can occasionally take a few minutes.
My token was generated but the agent cannot post
Double-check that:
- You copied the full access token — it is a long string and can be easy to truncate accidentally
- You selected all four required scopes when generating the token (
openid,profile,email,w_member_social) - You clicked Allow on the LinkedIn authorization page (not Cancel or Skip)
- You saved the credentials and restarted the agent in AgentGrow
If everything looks correct, generate a fresh token and reconfigure.
My agent posted but I cannot see it on LinkedIn
Check the Recent Activity section of your LinkedIn profile (click your profile photo → View profile → scroll down to Activity). LinkedIn may occasionally take a minute or two to index and display new posts in the feed. If the post does not appear after five minutes:
- Go to the Dashboard activity feed in AgentGrow and look for any error messages logged by the agent
- Verify your account has no LinkedIn posting restrictions (some new or restricted accounts have limits)
- Try posting manually on LinkedIn to confirm your account is in good standing
How do I check how many days are left on my token?
LinkedIn does not display the expiry date on the token tool page after generation. The safest approach is to note the date you generated the token and set a 50-day reminder to renew. Alternatively, you can test your current token by making a request to the LinkedIn API:
Use your browser's developer tools or a tool like Postman to send a GET request with the header Authorization: Bearer YOUR_TOKEN. A successful response means the token is still valid.