# LinkedIn Outreach

<!-- BEGIN GENERATED: guide-map -->
## Guide map

Read only the section needed for the next decision. Line ranges are exact
for this generated runtime target.

| Section | What it covers | Lines |
| --- | --- | --- |
| [Purpose](#purpose) | Scope, ownership, and the central operating question. | 30-39 |
| [Use This When](#use-this-when) | Tasks and conditions that belong in this guide. | 40-45 |
| [Do Not Use This For](#do-not-use-this-for) | Boundaries and the correct routes for excluded work. | 46-56 |
| [Mental Model](#mental-model) | Concepts and state boundaries needed for correct operation. | 57-72 |
| [Choose A Path](#choose-a-path) | Decision hierarchy for selecting the right capability or provider. | 73-79 |
| [Primary SDK Paths](#primary-sdk-paths) | Operating guidance and contracts for this section. | 80-92 |
| [Supporting References](#supporting-references) | Capability, provider, policy, and runtime guides for this outcome. | 93-101 |
| [Preflight](#preflight) | State, authority, inputs, and readiness to verify before execution. | 102-119 |
| [Risk And Side Effects](#risk-and-side-effects) | Effects, approvals, cost, privacy, and retry boundaries. | 120-131 |
| [Canonical Operating Pattern](#canonical-operating-pattern) | The normal end-to-end execution sequence. | 132-143 |
| [Data Contracts](#data-contracts) | Required identities, fields, evidence, handles, and durable shapes. | 144-159 |
| [Verification](#verification) | Evidence required before reporting success. | 160-168 |
| [Troubleshooting](#troubleshooting) | Failure diagnosis and corrective routes. | 169-179 |
| [Related References](#related-references) | Adjacent boundaries and when to cross them. | 180-189 |
<!-- END GENERATED: guide-map -->

Research relationships and perform approved LinkedIn connection, message, and
posting work.

## Purpose

LinkedIn Outreach owns relationship-aware LinkedIn action. It combines verified
profile identity, current relationship and conversation state, grounded copy,
and explicit action intent before a connection request, direct message, or
public post occurs.

It routes to the LinkedIn capability guide for exact provider operations and to
Safety for approval boundaries. It does not duplicate provider mechanics here.

## Use This When

Use this guide for connection requests, direct messages, conversation review,
relationship evidence, or public posts. Use `contact-enrichment.md` for
profile-only enrichment.

## Do Not Use This For

| Task | Owning Reference |
| --- | --- |
| Profile-only identity or attribute enrichment | `contact-enrichment.md` |
| Broad contact discovery without an outreach action | `contact-search.md` |
| Email conversations and replies | `inbox-and-replies.md` |
| Multistep campaign authoring and activation | `outbound-campaigns.md` |
| Browser-profile setup or managed-session diagnosis | `host_browser.md` |
| Draft-only copy review | `copywriting.md` |

## Mental Model

Every LinkedIn action depends on four truths:

1. Identity resolves the intended sender and target profile or public audience.
2. Relationship state records whether the target is unknown, pending,
   connected, following, blocked, or otherwise constrained.
3. Conversation and activity evidence explains what has already happened and
   what makes the next action relevant.
4. Action state distinguishes research, draft, approved effect, provider
   receipt, and resulting status.

A profile match does not imply permission to message. A provider timeout does
not imply failure. Reconcile current relationship and action state before
repeating an external operation.

## Choose A Path

1. Inspect relationship and conversation state before choosing an action.
2. Ground copy in verified person, company, and interaction evidence.
3. Keep research, draft, and external action separate.
4. Require clear intent before messaging, connecting, or posting.

## Primary SDK Paths

<!-- BEGIN GENERATED: primary-sdk-paths -->
| Primary function | Choose it when | Required inputs | Returns | Exact contract |
| --- | --- | --- | --- | --- |
| `vf.linkedin.status` | Use first to verify the selected LinkedIn sender is connected and ready for the intended read or write. | None | `linkedin_readiness` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:44-71` |
| `vf.linkedin.search_posts` | Use for bounded post research by keyword, freshness, author, company, or connected-account context. | None | `linkedin_posts` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:191-208` |
| `vf.linkedin.get_contact_relationship` | Use to inspect the current sender-to-contact relationship before deciding whether to connect or message. | `linkedin_url_or_slug` | `linkedin_relationship` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:431-450` |
| `vf.linkedin.send_connect` | Use after explicit approval to send a one-off connection request, optionally with an approved note. | `public_identifier` | `outbound_intent` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:73-107` |
| `vf.linkedin.send_message` | Use after explicit approval when the relationship permits a direct LinkedIn message. | `public_identifier`, `text` | `outbound_intent` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:109-143` |
| `vf.linkedin.create_post` | Use after explicit approval to publish or repost content from the selected connected sender. | `text` | `linkedin_post` | [`linkedin.md`](linkedin.md) · installed SDK: `verbiflow/linkedin.py:160-189` |
<!-- END GENERATED: primary-sdk-paths -->

## Supporting References

Open only the child that resolves the next material decision.

| Reference | Use it for | Kind |
| --- | --- | --- |
| [`linkedin.md`](linkedin.md) | LinkedIn reads, search, activity, conversations, messages, connections, and posts. | provider |
| [`safety.md`](safety.md) | Approval, confirmation, side-effect, purchase, and external-communication boundaries. | policy |

## Preflight

Before drafting or acting, establish:

- the intended organization and sender account;
- the canonical target profile, company, conversation, post, or public
  audience;
- current relationship, pending-request, conversation, and prior-action state;
- the verified evidence that makes the outreach timely and relevant;
- whether the user wants research, a draft, a connection, a message, or a
  public post;
- the exact recipient-facing content, attachments or links, and channel
  constraints;
- any provider interaction, account restriction, or approval still required.

Resolve duplicate names and ambiguous profiles before creating copy or taking
an action.

## Risk And Side Effects

| Stage | Risk And Boundary |
| --- | --- |
| Profile, relationship, activity, and conversation reads | Read-only provider access. Preserve source and account identity. |
| Drafting | Local or draft work. Do not imply that an action occurred. |
| Connection request or direct message | External communication. Require clear intent for the exact target and text. |
| Public post, comment, reaction, or repost | Public or audience-visible effect. Confirm account, content, visibility, and attachments. |

Provider effects must not be retried automatically after an ambiguous response.
Inspect relationship, conversation, post, or operation status first.

## Canonical Operating Pattern

1. Resolve sender and target identities.
2. Inspect current relationship, conversation, and relevant activity state.
3. Decide whether research, connection, message, or public posting is the
   appropriate next action.
4. Ground the draft in verified evidence and render the exact final content.
5. Confirm clear intent at the external-effect boundary.
6. Execute once through the owning LinkedIn surface and preserve its receipt.
7. Reconcile resulting relationship, conversation, or post state before
   reporting success or considering another action.

## Data Contracts

Preserve:

| Record | Required Meaning |
| --- | --- |
| Sender | Stable LinkedIn sender-account identity and owning organization. |
| Target | Canonical profile, company, conversation, or post identity and public URL when available. |
| Relationship | Current connection or follow state, pending status, observation time, and account used to observe it. |
| Conversation | Stable thread identity, participants, latest messages, and timestamps. |
| Draft | Intended action, exact rendered text, target, sender, evidence, and revision. |
| Action receipt | Provider operation identity, resulting object or message identity, status, timestamp, and sanitized error detail. |

Never key an action only by a person's display name. Preserve provider and
platform identifiers through research, draft, and effect.

## Verification

Verify profile identity, relationship state, intended recipient or audience,
final rendered content, action receipt, and resulting status.

For a connection or message, verify the relationship or conversation reflects
the action once. For a public post, verify the resulting post identity,
rendered content, links, media, and visibility under the intended sender.

## Troubleshooting

| Symptom | Likely Cause | What To Do |
| --- | --- | --- |
| Search found the wrong person | Display-name matching was treated as identity | Resolve canonical profile URL or provider identity before proceeding. |
| Connection action is rejected | Relationship is already connected, pending, blocked, or account-constrained | Inspect current relationship state and report the real boundary. |
| Message thread is missing | Wrong sender account or target conversation was used | Re-resolve sender and conversation identities. |
| Timeout occurs after an action | Provider result is ambiguous | Reconcile relationship, thread, post, or operation status before retrying. |
| Public post renders incorrectly | Text, link, media, or visibility was not previewed together | Rebuild and review the complete post payload before another effect. |
| Outreach feels generic | No relevant relationship or activity evidence was established | Return to research and copy review; do not manufacture a trigger. |

## Related References

| If You Are Doing This | Read Next |
| --- | --- |
| Exact LinkedIn reads and actions | `linkedin.md` |
| Approval and external-effect boundaries | `safety.md` |
| Relationship-aware copy review | `copywriting.md` |
| Existing conversation triage and replies | `inbox-and-replies.md` |
| Managed browser and provider-session evidence | `host_browser.md` |
| Campaign authoring and activation | `outbound-campaigns.md` |
