Linkedin ​
| Workflow | Type | Description |
|---|---|---|
| linkedin.ads.campaign.create-paused | Atomic | Scaffold: record a paused LinkedIn Ads campaign draft. Never sets ACTIVE or spends (SOCIAL-004). No live Campaign Manager write yet. |
| linkedin.ads.campaign.enable | Atomic | Hard-gated enable path for a paused LinkedIn Ads campaign. Requires an approved linkedin_ads_spend_review envelope unless force=true. v1 records the gate and does NOT call Campaign Manager to set status ACTIVE. |
| linkedin.ads.campaign.enable-with-approval | Dag | Open a Staff inbox envelope to enable a paused LinkedIn Ads campaign. Does not unpause or spend. Call linkedin.ads.campaign.enable separately with the approved envelope (v1 still will not set ACTIVE). |
| linkedin.ads.campaign.request-review | Atomic | Create a Staff ActorOutboxEnvelope for LinkedIn Ads spend enable (SOCIAL-004 hard inbox gate). |
| linkedin.ads.conversion.campaign.associate | Atomic | Associate a sponsored campaign with a Conversions API rule (PUT /rest/campaignConversions). Required before event attribution. |
| linkedin.ads.conversion.event.send | Atomic | Stream one conversion event to LinkedIn Conversions API (POST /rest/conversionEvents). Hashes raw emails when needed. Does not create campaigns or enable spend. |
| linkedin.ads.conversion.rule.create | Atomic | Create a LinkedIn Conversions API rule (POST /rest/conversions) for a pinned ad account. Does not stream events and does not enable spend. |
| linkedin.ads.creative.attach | Atomic | Scaffold: attach a StorageObject creative ref to a paused LinkedIn Ads structure. Never enables spend. No live Campaign Manager upload yet. |
| linkedin.ads.insights.pull | Atomic | Scaffold: pull LinkedIn Ads insights for a campaign or pinned ad account. No live analytics API yet (R1.7). |
| linkedin.compensation.noop | Atomic | No-op compensation marker for LinkedIn DAG layers whose forward steps are local drafts or inbox envelopes without a reverse provider mutation. |
| linkedin.content.draft | Atomic | Validate LinkedIn organic post inputs and stamp a draft_id for the publish-with-approval DAG (no LinkedIn mutate). |
| linkedin.content.request-review | Atomic | Create a Staff ActorOutboxEnvelope for LinkedIn organic content inbox review. |
| linkedin.media.register | Atomic | Register a LinkedIn image/video upload (initializeUpload). Prefer StorageObject bytes; otherwise return upload instructions. |
| linkedin.post.create | Atomic | Create a LinkedIn organic post via /rest/posts. Requires an approved linkedin_content_review envelope unless force=true (SOCIAL-004). |
| linkedin.post.create-with-media | Dag | Compound: linkedin.media.register → linkedin.post.create. post.create remains inbox-gated unless force=true. |
| linkedin.post.publish-with-approval | Dag | Draft LinkedIn organic content and open a staff inbox review envelope. Does not publish — after approve, call linkedin.post.create with the approval_envelope_uuid (SOCIAL-004 hard gate). |
