Skip to main content

How to sync LinkedIn Replies from Lemlist

Sync LinkedIn Replies from Lemlist to folk using Make/ Zapier/ n8n

Updated this week

This guide explains how to automatically push every LinkedIn reply from Lemlist into folk as an Interaction, using a Make/ Zapier/ n8n scenario.

The workflow performs four essential actions:

  1. Detect LinkedIn replies using Lemlist’s “Watch Activities” module

  2. Pull the full LinkedIn message content from Lemlist Inbox

  3. Find the matching contact in folk using their LinkedIn profile URL

  4. Create an Interaction in folk containing the reply message

This keeps folk fully updated with all LinkedIn conversations happening through Lemlist—without any manual work.


1. Trigger: Watch for LinkedIn Replies in Lemlist

In Make:

  1. Add module → Lemlist → Watch Activities

  2. Select Activity type = LinkedIn Replied

This returns payload fields such as:

  • leadId

  • contactId

  • leadLinkedinUrl

  • createdAt

  • campaignId

  • etc.

👉 Important: Lemlist does not send the full reply text here.
You must fetch it via the Inbox API in the next step.


2. Retrieve Full Message Text from Lemlist Inbox

Lemlist’s webhook does not include the reply message body.
To get the full LinkedIn reply, call the Inbox API.

📌 Endpoint

GET

https://api.lemlist.com/api/inbox/{contactId}

Headers

Authorization: ApiKey <LEMLIST_API_KEY> Content-Type: application/json

In Make

  1. Add HTTP → Make a Request

  2. Configure:

    • Method: GET

    • URL:

      https://api.lemlist.com/api/inbox/{{contactId}}

This returns the entire conversation history:

{   "data": [     {       "_id": "act_vRoP8AMFMxqfSeDjR",       "type": "emailsSent",       "createdAt": "2024-12-05T16:39:41.416Z",       "leadEmail": "victoire@lemlist.co",       "contactId": "ctc_wfKeM8EmiTikud7QE",       "message": "<html><div>Hello lemlist Team! 😎 ...</div></html>"     }   ] }

Extract

  • The last element in data[]

  • Use the message field as the Interaction content

  • Use createdAt for the timestamp


3. Find the Contact in folk Using LinkedIn URL

Your Lemlist Activity payload includes:

leadLinkedinUrl

You can use this to match the person in folk.

📌 Endpoint

GET

https://api.folk.app/v1/people?filter[urls][like]={{leadLinkedinUrl}}

Headers

Authorization: Bearer <FOLK_API_KEY> Content-Type: application/json

In Make

Add module → HTTP → Make a Request

  • Method: GET

  • URL:

https://api.folk.app/v1/people?filter[urls][like]={{leadLinkedinUrl}}

Expected response:

{   "data": [     {       "id": "per_123",       "firstName": "John",       "lastName": "Doe"     }   ] }

Extract:

  • data[0].idperson_id

If no contact found?

Choose:

  • STOP
    or

  • Create Person in folk (optional workflow)


4. Create an Interaction in folk (the LinkedIn Reply)

Once you have person_id, you can push the reply into folk.

📌 Endpoint

POST

https://api.folk.app/v1/interactions

Headers

Authorization: Bearer <FOLK_API_KEY> Content-Type: application/json

Example Payload

{   "entity": {     "id": "{{person_id}}"   },   "dateTime": "{{createdAt}}",   "title": "LinkedIn reply",   "content": "{{reply_message_html}}",   "type": "🫵🏼" }

In Make

Add module → HTTP → Make a Request

  • Method: POST

  • Body type: Raw JSON

  • Map:

    • {{person_id}}

    • {{message}} (from inbox API)

    • {{createdAt}} (activity timestamp or message timestamp)


🎯 Final Architecture Summary

Make Scenario Flow

Lemlist: Watch Activities (LinkedIn Replied)       ↓ HTTP GET https://api.lemlist.com/api/inbox/{contactId}       ↓ HTTP GET https://api.folk.app/v1/people?filter[urls][like]={linkedinUrl}       ↓ HTTP POST https://api.folk.app/v1/interactions

Your folk workspace will now contain real LinkedIn messages from Lemlist as Interactions, tied to the correct Person—fully automated.

Did this answer your question?