{
  "id": "FKTUa1XadDinfcli",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Template Recovering a Contact\u2019s Name from a LinkedIn URL with LinkUp",
  "tags": [],
  "nodes": [
    {
      "id": "08a2b197-7d03-4277-89a1-840986b20de9",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -224,
        16
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "92b5789f-f4e8-496b-89d6-c7b739f36681",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        784,
        16
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8b083e8b-4e53-44b4-8131-d7d777290919",
      "name": "Replace Me",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1840,
        48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0f00dc68-3b98-4803-b92e-cd9617504df6",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        544,
        16
      ],
      "parameters": {
        "maxItems": 30
      },
      "typeVersion": 1
    },
    {
      "id": "dcfd5a08-c128-47c6-a0a8-c361e72d9ed2",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "58c163c2-f1c8-4365-9c80-1b27ac88bdda",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('linkedinurl').item.json.url }}",
              "rightValue": ""
            },
            {
              "id": "1a020fcd-63d6-43ae-bdcc-6fbf3113d805",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $('linkedinurl').item.json.name }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "0abfadae-3511-4e68-97da-5c8156c90b22",
      "name": "linkup",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "return only the linkedin url of {{ $json.name }}. If you have multiple answers, pick the one who works in data or software and located in New York. Return an empty string if there is no match",
      "position": [
        1312,
        -112
      ],
      "parameters": {
        "url": "https://api.linkup.so/v1/search",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "=You are an expert LinkedIn researcher. \n\nYour goal is to find the name associated to this LinkedIn profile URL {{ $('linkedinurl').item.json.url }}. Return only the name.\n"
            },
            {
              "name": "depth",
              "value": "standard"
            },
            {
              "name": "outputType",
              "value": "sourcedAnswer"
            },
            {
              "name": "includeImages",
              "value": "false"
            },
            {
              "name": "includeInlineCitations",
              "value": "false"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ \"Bearer \" + $('settings').item.json.ApiKey }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "dcb6210c-0c3c-4861-afdc-39054b9b685d",
      "name": "linkedinurl",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        320,
        16
      ],
      "parameters": {
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "6iErZByf7E4tx8rd",
          "cachedResultUrl": "/projects/QTlUADn6UO4c5XzD/datatables/6iErZByf7E4tx8rd",
          "cachedResultName": "LinkedInURL"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7f105c11-6943-4ba3-9b6b-39487d85cc25",
      "name": "settings",
      "type": "n8n-nodes-base.set",
      "position": [
        48,
        16
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c428d921-a31d-4c22-ba86-d01872e93521",
              "name": "ApiKey",
              "type": "string",
              "value": "enter your LinkUp API key here"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c1d6dce1-c378-4b3d-9d24-eeb09018b4b2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -32
      ],
      "parameters": {
        "color": 6,
        "width": 224,
        "height": 224,
        "content": "Setup Your Api Key here"
      },
      "typeVersion": 1
    },
    {
      "id": "8d7705e0-434c-4545-afc2-4da8acbc5c8c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 224,
        "height": 224,
        "content": "Don't forget to add LinkedIn URL"
      },
      "typeVersion": 1
    },
    {
      "id": "df2c412b-be8b-46b2-b4ce-e2b582f5b076",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        -176
      ],
      "parameters": {
        "color": 6,
        "width": 224,
        "height": 240,
        "content": "LinkUp Call."
      },
      "typeVersion": 1
    },
    {
      "id": "f1186d35-8b9c-4126-89a6-6745f0c98039",
      "name": "update name",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1552,
        -112
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.answer }}"
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "filters": {
          "conditions": [
            {
              "keyValue": "={{ $('linkedinurl').item.json.id }}"
            }
          ]
        },
        "options": {},
        "operation": "update",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "6iErZByf7E4tx8rd",
          "cachedResultUrl": "/projects/QTlUADn6UO4c5XzD/datatables/6iErZByf7E4tx8rd",
          "cachedResultName": "LinkedInURL"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7150ab3a-cba5-481b-bb91-c24004f691a0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        -432
      ],
      "parameters": {
        "color": 7,
        "width": 560,
        "height": 912,
        "content": "# Recovering a Contact\u2019s Name from a LinkedIn URL with LinkUp\n\n## Summary  \nThis workflow retrieves a LinkedIn contact\u2019s **full name** from their **profile URL** using the [LinkUp](https://www.linkup.so) AI Search API. It\u2019s a lightweight alternative to web scraping or complex APIs \u2014 integrating neatly into your existing **n8n** automations.\n\n## How it works  \n- The workflow reads LinkedIn URLs from a **Data Table**.  \n- Each URL is sent to LinkUp via an HTTP Request node using natural language.  \n- LinkUp returns the corresponding contact name.  \n- The Data Table is automatically updated with the retrieved name.  \n\n## How to use  \n1. Create a Data Table named **LinkedInURL** with two fields:  \n   - `url` (String)  \n   - `name` (String)  \n2. Add one or more LinkedIn profile URLs, for example:  \n   `https://www.linkedin.com/in/stephaneheckel/`  \n3. Store your LinkUp API key in the **Settings** component.  \n   You can get one at [https://app.linkup.so/api-keys](https://app.linkup.so/api-keys).  \n4. Run the workflow. The `name` field will populate with the correct LinkedIn names.  \n\n## Requirements  \n- **LinkUp** account\n- **n8n** version: tested on 1.122.4 (Ubuntu)\n\n## Need Help?\nFeel free to comment this [post](https://www.linkedin.com/posts/n8n-about_linkedin-activity-7436922917336289281-hTxv/).\nContact me on [LinkedIn](https://www.linkedin.com/in/stephaneheckel/) or ask in the [Forum](https://community.n8n.io/)!"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "138c496a-8192-4008-9976-63d29e20ac61",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "linkup",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Replace Me",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "linkup": {
      "main": [
        [
          {
            "node": "update name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "settings": {
      "main": [
        [
          {
            "node": "linkedinurl",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Replace Me": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "linkedinurl": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "update name": {
      "main": [
        [
          {
            "node": "Replace Me",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}