Extract LinkedIn Messages

LinkedIn Message Scraper extracts messages from a LinkedIn conversation.

Edges is not related to LinkedIn and is not an official LinkedIn product.

API Endpoint

POST/v1/actions/linkedin-extract-messages/run/live

Parameters

Request parameters

Input Parameters

Integration Parameters

Guide

What Extract LinkedIn Messages does

Extract LinkedIn Messages pulls the full message history from a LinkedIn conversation thread into structured rows you can archive, analyse, or feed into downstream tooling. Each row is a single message with sender, timestamp, body, and attachment metadata.

The action runs on the LinkedIn level and is designed for teams who treat LinkedIn DMs as a first-class channel that belongs in the CRM, not stuck inside the LinkedIn inbox.

How it works

You pass the conversation ID or the counterpart's profile URL, and Edges reads the thread using your authenticated LinkedIn session. It paginates through message history from newest to oldest until the cap is hit or the thread is exhausted.

Runs execute on Edges infrastructure with safe rate pacing. Short threads resolve synchronously; long archives should run async so pagination can complete in the background.

When to use Extract LinkedIn Messages

Use Extract LinkedIn Messages when conversation data needs to live outside LinkedIn — your CRM, your data warehouse, or a conversational analytics tool. It maps to the LinkedIn messaging & outreach API use case.

Sales teams use it to mirror DMs into Salesforce or HubSpot activity timelines. RevOps uses it to compute response rates, time-to-reply, and reply sentiment across reps.

Use cases

  • CRM activity mirroring. Sync LinkedIn threads into Salesforce or HubSpot so AEs see a unified timeline across channels.
  • Reply-rate analytics. Compute team-level response rates and reply intervals from mirrored message data.
  • Qualification handoff. Capture full conversation context when an SDR books a meeting, so the AE walks in informed.
  • Compliance archiving. Regulated industries can retain LinkedIn communications outside the platform for audit.
  • Conversation intelligence. Feed threads into an LLM for summarisation, sentiment, or objection-tagging.

Best practices

  • Cap message depth. Older threads can have hundreds of messages. Use the max parameter to fetch only recent turns when full history is not needed.
  • Run on a schedule, not on demand. A nightly sync is cleaner than real-time polling and stays well under LinkedIn's activity guardrails.
  • Deduplicate on `messageId`. Re-runs return overlapping windows; use messageId as your upsert key.
  • Pair with enrichment. Chain with Extract LinkedIn Conversations to list threads first, then fan out Extract LinkedIn Messages per thread.

Common questions

How many messages can I extract per run?

Edges paginates the full thread. Very long threads should run async so the job is not tied to a single HTTP connection.

Does Extract LinkedIn Messages use my LinkedIn account or a shared pool?

Your LinkedIn account. Messages are read through the authenticated session of the LinkedIn account you connected to Edges, so visibility matches your inbox exactly.

Can I chain Extract LinkedIn Messages with other Edges actions?

Yes. A standard pattern is to list threads via Extract LinkedIn Conversations, extract messages per thread, then chain Mark Message As Read once the sync is stored.

Get started

Run Extract LinkedIn Messages from the Edges library, schedule it via cron, or call it directly from the Edges API. Browse the full Actions library to see messaging primitives you can chain alongside.

Code Examples

bash
curl -X POST "https://api.edges.run/v1/actions/linkedin-extract-messages/run/live" \
  -H "X-API-KEY: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
  "identity_ids": [
    "your-identity-uuid"
  ],
  "identity_mode": "direct",
  "input": {
    "linkedin_thread_url": "https://www.linkedin.com/in/example-profile",
    "custom_data": "example_value"
  }
}'

Output Example

[
  {
    "linkedin_thread_id": "example-123",
    "position": 42,
    "delivered_at": "example_value",
    "created_at": "example_value",
    "first_name": "John",
    "last_name": "Doe",
    "linkedin_profile_id": 42,
    "sales_navigator_profile_id": "example-123",
    "job_title": "Software Engineer at Example Corp",
    "content": "example_value",
    "message_id": "example-123",
    "attachments": [
      1,
      2,
      3
    ]
  }
]

Explore More Actions

Discover other powerful LinkedIn automation actions in our library.