Hi guys,
we have build this workflow as an example to demonstrate what you can achieve using the brand new Browserflow for LinkedIn modules.
Please note that Browserflow is currently a community node and will not yet be available for cloud users (soon to come).
To make use of the following workflow (code below) you will need to do the following:
- Sign up for an OpenAI API key which you can register here.
- Register for a free 7-day trial at Browserflow to obtain your Browserflow API key.
- Sign into LinkedIn in the Browserflow platform by completing the setup wizard.
- Customize the messages in the OpenAI actions in the workflow to tailor it to your preferences.
- Fill the LinkedIn profile you would like to message or invite into the first Browserflow action (‘Scrape Profile’).
You should be ready to go now! Please let me know if there is anything unclear about this guide!
Protip: You can connect this workflow to any crm or dataholder you like to loop over multiple LinkedIn profiles!
{
"name": "LinkedIn Outreach Flow",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "de819514-26a7-4a7c-a91b-23ebbaba6c2c",
"name": "When clicking ‘Test workflow’"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "d1df044a-59c8-4185-9053-cb314d4888bf",
"leftValue": "={{ $json.is_connection }}",
"rightValue": "true",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
660,
0
],
"id": "2cb61281-7c0f-4846-a79b-217eed493aa5",
"name": "If"
},
{
"parameters": {
"operation": "sendConnectionInvite",
"linkedinUrl": "={{ $('Scrape Profile').item.json.data.url }}",
"addMessage": true,
"message": "={{ $('Generate LinkedIn Invite message').item.json.message.content }}",
"requestOptions": {}
},
"type": "n8n-nodes-browserflow.browserflow",
"typeVersion": 1,
"position": [
1256,
100
],
"id": "70a37185-f71b-470f-871c-ad756ae94a60",
"name": "Send Connection Invite",
"credentials": {
"browserflowApi": {
"id": "fJVZrTjZAz9tltLD",
"name": "Browserflow account"
}
}
},
{
"parameters": {
"operation": "sendMessage",
"linkedinUrl": "={{ $('Scrape Profile').item.json.data.url }}",
"message": "={{ $json.message.content }}",
"requestOptions": {}
},
"type": "n8n-nodes-browserflow.browserflow",
"typeVersion": 1,
"position": [
1256,
-100
],
"id": "eece23e1-ca9e-4c21-86f1-2e8ca6572559",
"name": "Send LinkedIn Message",
"credentials": {
"browserflowApi": {
"id": "fJVZrTjZAz9tltLD",
"name": "Browserflow account"
}
}
},
{
"parameters": {
"linkedinUrl": "={{ $('Scrape Profile').item.json.data.url }}",
"requestOptions": {}
},
"type": "n8n-nodes-browserflow.browserflow",
"typeVersion": 1,
"position": [
440,
0
],
"id": "145824c8-10cf-4371-976e-d83e64b377c6",
"name": "Check if person is a Connection",
"credentials": {
"browserflowApi": {
"id": "fJVZrTjZAz9tltLD",
"name": "Browserflow account"
}
}
},
{
"parameters": {
"operation": "getProfileData",
"linkedinUrl": "<Person you like to scrape>",
"requestOptions": {}
},
"type": "n8n-nodes-browserflow.browserflow",
"typeVersion": 1,
"position": [
220,
0
],
"id": "d740d1e5-7c7a-4b06-9d1b-48a72e272d00",
"name": "Scrape Profile",
"credentials": {
"browserflowApi": {
"id": "fJVZrTjZAz9tltLD",
"name": "Browserflow account"
}
}
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-3.5-turbo",
"mode": "list",
"cachedResultName": "GPT-3.5-TURBO"
},
"messages": {
"values": [
{
"content": "You should generate a custom and personalized LinkedIn message that should promote the new n8n module named Browserflow that helps automating various LinkedIn actions. (website: https://browserflow.io)\nThis message should be based on the data that is inserted by the user. Please use the latest posts to make the message as personal as possible. \n",
"role": "system"
},
{
"content": "=This is the data about the user that should receive the message. Name: {{ $('Scrape Profile').item.json.data.name }}\nTagline: {{ $('Scrape Profile').item.json.data.tagline }}\nCurrent company: {{ $('Scrape Profile').item.json.data.current_company }}\nPersons latests posts\n-1: {{ $('Scrape Profile').item.json.data.Activity[0].description }}\n-2:{{ $('Scrape Profile').item.json.data.Activity[1].description }}\n"
},
{
"content": "[IMPORTANT GUILDELINES]: The message should be as short as possible and should not have a subject or name at the bottom as its clear from who is the message already (only close of with 'Best regards!').",
"role": "system"
}
]
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
880,
-100
],
"id": "be2f212d-ce48-43f3-bfc5-049fa59026f6",
"name": "Generate Linkedin Message",
"credentials": {
"openAiApi": {
"id": "xxxxxxxxxxx",
"name": "OpenAi account"
}
}
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-3.5-turbo",
"mode": "list",
"cachedResultName": "GPT-3.5-TURBO"
},
"messages": {
"values": [
{
"content": "You should generate a custom and personalized LinkedIn invite message of maximum 200 characters about the new n8n module named Browserflow that helps automating various LinkedIn actions.\nThis message should be based on the data that is inserted by the user. Please use the latest activities to make the message as personal as possible.\n\nYou wont have to close of with your own name. Also Please make sure it is max 200 characters and should not have a subject or name at the bottom as its clear from who is the message already (only close of with 'Best regards!'). this is very important!",
"role": "system"
},
{
"content": "=This is the data about the user that should receive the message. Name: {{ $('Scrape Profile').item.json.data.name }}\nTagline: {{ $('Scrape Profile').item.json.data.tagline }}\nCurrent company: {{ $('Scrape Profile').item.json.data.current_company }}\nPersons latests posts\n-1: {{ $('Scrape Profile').item.json.data.Activity[0].description }}\n-2:{{ $('Scrape Profile').item.json.data.Activity[1].description }}\n"
}
]
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
880,
100
],
"id": "8d5a0153-56da-41c2-9b32-1872891c4707",
"name": "Generate LinkedIn Invite message",
"credentials": {
"openAiApi": {
"id": "xxxxxxxxxxx",
"name": "OpenAi account"
}
}
}
],
"pinData": {},
"connections": {
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Scrape Profile",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Generate Linkedin Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Generate LinkedIn Invite message",
"type": "main",
"index": 0
}
]
]
},
"Check if person is a Connection": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Scrape Profile": {
"main": [
[
{
"node": "Check if person is a Connection",
"type": "main",
"index": 0
}
]
]
},
"Generate Linkedin Message": {
"main": [
[
{
"node": "Send LinkedIn Message",
"type": "main",
"index": 0
}
]
]
},
"Generate LinkedIn Invite message": {
"main": [
[
{
"node": "Send Connection Invite",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "93c7a21a-634b-4e43-994a-28dac6bcc7ec",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "bf39024f514309eb526ad7a7435a593b0e8d75681c49ded5c1e190c4cff8c195"
},
"id": "RcAXqez20nlCMJKq",
"tags": []
}```

