LinkedIn Outreach Platform Agentic Workflow
Draft Message Reply — LinkedIn Outreach Platform Automation Workflow
Extracts conversation context and drafts a reply using LLM, placing it in the message box
sidebutton install linkedin.com Extracts conversation context and drafts a reply using LLM, placing it in the message box
Workflow Definition
YAML source for the linkedin_draft_reply.yaml workflow. This is the complete definition executed by the SideButton MCP server when LinkedIn Outreach Platform agents run this automation.
schema_version: 1
version: "1.2.0"
last_verified: "2026-02-27"
id: linkedin_draft_reply
title: "Draft Message Reply"
description: "Extracts conversation context and drafts a reply using LLM, placing it in the message box"
category:
level: task
domain: sales
reusable: true
params:
instructions: string
policies:
allowed_domains:
- "*.linkedin.com"
embed:
selector: ".msg-form__msg-content-container"
position: append
when: ".msg-s-message-list-content"
label: "Draft Reply"
prompt:
param: instructions
placeholder: "e.g. be formal and decline, suggest a call"
title: "Draft Reply"
param_map:
instructions: "{{instructions}}"
result:
action: "none"
steps:
# Wait for conversation to be loaded
- type: browser.wait
selector: ".msg-s-message-list-content"
timeout: 5000
# Visual feedback: pulsing border on compose container while AI works
- type: browser.injectCSS
id: sb-draft-feedback
css: |
@keyframes sb-pulse {
0%, 100% { box-shadow: inset 0 0 0 2px rgba(21, 195, 154, 0.3); }
50% { box-shadow: inset 0 0 0 4px rgba(21, 195, 154, 0.8); }
}
.msg-form__contenteditable {
animation: sb-pulse 1.5s ease-in-out infinite !important;
border-radius: 8px !important;
}
# Extract recent messages from conversation
- type: browser.extractAll
selector: "li.msg-s-message-list__event"
as: messages
separator: "\n---\n"
# Extract participant name
- type: browser.extract
selector: ".msg-entity-lockup__entity-title, .msg-overlay-conversation-bubble__title span"
as: participant_name
# Generate draft reply
- type: llm.generate
prompt: |
You are drafting a LinkedIn reply. Be professional, warm, and concise.
Conversation with {{participant_name}}:
{{messages}}
User instructions: {{instructions}}
Write a thoughtful reply that:
- Responds directly to the most recent message
- Keeps a professional but friendly tone
- Is concise (2-4 sentences max)
- Doesn't include greeting like "Hi [name]" if already established
- Follows any user instructions above if provided
Return ONLY the message text, no quotes or formatting.
as: draft
# Remove visual feedback
- type: browser.injectCSS
id: sb-draft-feedback
css: |
.msg-form__contenteditable {
box-shadow: none !important;
animation: none !important;
}
# Type the draft into the message box
- type: browser.click
selector: ".msg-form__contenteditable"
- type: browser.type
selector: ".msg-form__contenteditable"
text: "{{draft}}\n\n---\nSent from sidebutton.com"
How To Run
Install the LinkedIn Outreach Platform knowledge pack into your SideButton agent, then dispatch this workflow by its ID linkedin_draft_reply.yaml. Agents invoke it directly via the MCP protocol or through the portal.