upsert_linkedin_contact
Create a contact from a known LinkedIn profile URL, or return the existing contact when the profile was already imported. Use this when you already know the exact profile URL and do not need to run a search. The contact is saved to a dedicated CRM Imports list and can then be passed to add_contacts_to_campaign. Pass web_research (what you found about their company/person online) and personalization_note (a hook for the outreach message) — both are stored on the contact and fed to the LinkedIn message generator as facts to personalize on. On an existing contact these are MERGED in (they enrich, never blank out existing data).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | Current company. Optional. | |
| list_id | No | UUID of an existing lead list to put the contact into (from list_lead_lists). Optional — defaults to the 'CRM Imports' list. For an existing contact this MOVES it into that list. | |
| headline | No | LinkedIn headline. Optional. | |
| position | No | Current role/title. Optional. | |
| full_name | No | Contact name. Optional when it is not available yet. | |
| profile_url | Yes | LinkedIn profile URL in the form https://www.linkedin.com/in/... | |
| web_research | No | Free-text research about the person/company found online (news, website, recent events). Used as facts to personalize the outreach. Optional. | |
| prospect_company_id | No | UUID returned by list_companies. Links this employee to the stored company and, when that company is in CRM, also adds/links the person to the CRM company. | |
| personalization_note | No | A short note/hook for writing the LinkedIn message (e.g. 'reference their new plant in Brno'). Fed to the message generator. Optional. |