Skip to main content
All integrations
V
+
L
In flight
Communications

Velora Marketing + LinkedIn

Producer-personal LinkedIn dispatch via Unipile — scaffolded, activate-when-env-set.

LinkedIn is the channel we get asked about most by mid-market broker agencies. Producers want to send connection requests + InMails + DMs from their own personal LinkedIn account as part of the same multi-channel cadence as email, SMS, and voice.

Round 12 progress: the dispatch layer is now wired through Unipile (a third-party LinkedIn-API gateway that doesn't require LinkedIn Marketing partner status). When `UNIPILE_API_KEY` + `UNIPILE_ACCOUNT_ID` are both set in environment, channel=`linkedin` flips from log-only to real send via `lib/outbound/linkedin-unipile.ts`. The hooks are: `sendLinkedInMessage()` for 1st-degree DMs and `sendLinkedInConnection()` for new-connection invites.

Honest scope today: the brokers table doesn't yet carry a `linkedinUrl` column, so until that field is captured during contact import, dispatch falls back to log-only with a `skippedDispatch: recipient.linkedinUrl missing` reason. Adding `linkedinUrl` to the contact-import flow is the next product step. Once both pieces land — env config + linkedinUrl on the recipient — the channel goes live without further code changes elsewhere.

Data flow

What moves between Velora and LinkedIn.

Velora sends to LinkedIn
  • 1:1 LinkedIn DMs via Unipile (when configured)
  • Connection invitations with optional note
Velora receives from LinkedIn
  • Reply DMs (planned — webhook back from Unipile)
Setup

How to connect.

1) Create a Unipile workspace + connect your LinkedIn account in their UI. 2) Set `UNIPILE_API_KEY` + `UNIPILE_ACCOUNT_ID` in your environment. 3) Capture `linkedinUrl` on contacts (via CSV import or admin edit). 4) Add `linkedin` steps to your playbook — they'll fire through Unipile.