Why can't I resume my campaign? (No prospects with LinkedIn URL)

If you click Resume or Start on a LinkedIn campaign and the action is blocked with a soft amber Alert that says 'No prospects with LinkedIn URL', this section explains why we block it instead of letting the campaign 'run' silently with nothing to send.

What the Alert means: your campaign has at least one active LinkedIn step (send_invite, send_message, send_inmail, view_profile, or any wait/condition step), but ZERO of your enrolled prospects have a usable LinkedIn identifier — neither a linkedin_profile_url nor a linkedin_member_id column populated. LinkedIn steps cannot send to prospects without a way to identify the recipient on LinkedIn's side, so the campaign would silently sit at 'running' with every per-prospect tick logging a linkedin_skipped event with reason 'No LinkedIn profile URL or member ID'. As of May 2 2026 (LL#290), we block the Resume/Start action up-front with a clear soft amber Alert and an 'Import contacts' CTA.

What to do: (1) Click 'Import contacts' to open the campaign edit page. (2) Re-import your CSV — make sure the LinkedIn URL column is mapped to either linkedin_profile_url or linkedin_url during the column-mapping step. Both linkedin.com/in/<handle> and Sales Navigator URLs (linkedin.com/sales/lead/...) are accepted; we resolve the latter via Unipile's lead-ID decoder. (3) Alternatively, if your prospects already exist in your workspace's prospect database with LinkedIn URLs, edit the campaign's audience or prospect list selection to include them. (4) Click Resume again. The preflight passes; the campaign transitions to running.

API behavior: the Resume/Start endpoints (POST /api/campaigns/:id/start, POST /api/campaigns/:id/resume) return HTTP 422 with structured body { error: 'audience_empty_no_linkedin_url', code: 'AUDIENCE_EMPTY_NO_LINKEDIN_URL', message: '...' }. Integration retry logic should treat this as a permanent failure for the current campaign state — retrying without first importing prospects returns the same 422.

Account safety: read-only DB check, zero new Unipile API calls, no rate-limit risk. The check only runs on the transition INTO running (draft→running, paused→running) — currently-running campaigns are never re-evaluated retroactively. For email-only campaigns and pure-email steps, this preflight does not apply (no LinkedIn step → no check). Legacy LinkedIn campaigns (standalone LinkedIn-only wizard) already had a similar enrollment-count guard via validateCampaignStart; this fix brings the unified campaign path up to parity.

References: LL#290 (audience-empty preflight on campaign Resume/Start, May 2 2026). PRD: PRD-2026-05-02-LINKEDIN-STABILITY-FIX-PACK.md (Bug #8). Related: LL#236 (template-variable launch validator — same family of soft-amber preflight Alert pattern).

Back to all documentation | Contact support