{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ironclaw-outreach-sequencer",
    "name": "Ironclaw Outreach Sequencer",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/aspenas/ironclaw-outreach-sequencer",
    "canonicalUrl": "https://clawhub.ai/aspenas/ironclaw-outreach-sequencer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ironclaw-outreach-sequencer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ironclaw-outreach-sequencer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ironclaw-outreach-sequencer"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ironclaw-outreach-sequencer",
    "agentPageUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Outreach Sequencer — Multi-Step Personalized Campaigns",
        "body": "Design, schedule, and execute multi-step outreach sequences across LinkedIn and email. Each message is personalized per lead using their profile data from DuckDB."
      },
      {
        "title": "Template 1: LinkedIn Connection + Message",
        "body": "Day 0: Send LinkedIn connection request (with note)\nDay 1: If accepted → Send intro message\nDay 3: If no reply → Follow-up message\nDay 7: If no reply → Break-up / value-add message"
      },
      {
        "title": "Template 2: Cold Email Sequence",
        "body": "Day 0: Initial cold email\nDay 3: Follow-up (reply to original thread)\nDay 7: Value-add email (case study, resource)\nDay 14: Break-up email (\"closing the loop\")"
      },
      {
        "title": "Template 3: Multi-Channel",
        "body": "Day 0: LinkedIn connection request\nDay 2: Cold email (if not connected on LinkedIn)\nDay 4: LinkedIn message (if connected) OR email follow-up\nDay 7: Final touch (whichever channel they engaged on)"
      },
      {
        "title": "Personalization Engine",
        "body": "Each message is generated per-lead using their DuckDB profile data. Use these variables:\n\nVariableSourceExample{first_name}Name field (split)\"Jane\"{company}Company field\"Acme Corp\"{title}Title field\"CTO\"{mutual}Shared connections/background\"Stanford\"{trigger}Why reaching out now\"saw your Series A\"{value_prop}What you offer them\"AI-powered analytics\"{pain_point}Their likely challenge\"scaling engineering team\""
      },
      {
        "title": "Personalization Rules",
        "body": "Never use generic openers like \"I hope this finds you well\"\nReference something specific: recent post, company news, shared background\nKeep LinkedIn messages under 300 chars (connection note limit)\nKeep cold emails under 150 words (respect attention)\nVary language across leads — don't send identical messages to people at the same company\nMatch tone to seniority: C-suite gets concise/strategic, ICs get technical/peer-level"
      },
      {
        "title": "Message Generation Pattern",
        "body": "1. Read lead profile from DuckDB\n2. Identify personalization hooks:\n   - Shared background (school, company, location)\n   - Recent company news (web search if needed)\n   - Role-specific pain points\n3. Select message template for sequence step\n4. Generate personalized message\n5. Store message + status in DuckDB"
      },
      {
        "title": "LinkedIn Messages (via Browser)",
        "body": "browser → open LinkedIn messaging\nbrowser → search for recipient\nbrowser → open conversation\nbrowser → type personalized message\nbrowser → send\n→ Update DuckDB status: \"Sent\""
      },
      {
        "title": "Email (via gog CLI)",
        "body": "gog gmail send \\\n  --to \"{email}\" \\\n  --subject \"{subject}\" \\\n  --body \"{personalized_body}\" \\\n  --account patrick@candlefish.ai\n\nFor follow-ups (reply to thread):\n\ngog gmail reply \\\n  --thread-id \"{thread_id}\" \\\n  --body \"{follow_up_body}\""
      },
      {
        "title": "Sequence Status Tracking",
        "body": "Track in DuckDB with these status fields:\n\nFieldValuesNotesOutreach StatusQueued, Sent, Replied, Converted, Bounced, Opted OutMain statusSequence Step1, 2, 3, 4Current step in sequenceLast OutreachdateWhen last message was sentNext OutreachdateWhen next step is dueOutreach ChannelLinkedIn, Email, BothActive channelReply ReceivedbooleanTrue if they respondedThread IDtextGmail thread ID for email chains\n\n-- Find leads due for next sequence step\nSELECT \"Name\", \"Email\", \"Outreach Status\", \"Sequence Step\", \"Next Outreach\"\nFROM v_leads\nWHERE \"Outreach Status\" = 'Sent'\n  AND \"Reply Received\" = false\n  AND \"Next Outreach\" <= CURRENT_DATE\nORDER BY \"Next Outreach\";"
      },
      {
        "title": "Cron Integration",
        "body": "Set up automated sequence execution:\n\nSchedule: Every 2 hours during business hours (9am-5pm Mon-Fri)\nAction:\n1. Query leads due for next step\n2. For each due lead:\n   a. Generate personalized message for their current step\n   b. Send via appropriate channel\n   c. Update status + advance step\n   d. Set next outreach date\n3. Report: \"Sent 12 messages (8 LinkedIn, 4 email). 3 replies received.\""
      },
      {
        "title": "Cron Job Setup (for OpenClaw)",
        "body": "{\n  \"name\": \"Outreach Sequencer\",\n  \"schedule\": { \"kind\": \"cron\", \"expr\": \"0 9,11,13,15 * * 1-5\", \"tz\": \"America/Denver\" },\n  \"sessionTarget\": \"isolated\",\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"Run outreach sequence check. Query DuckDB for leads with Next Outreach <= today. Send personalized messages for their current sequence step. Update statuses. Report results.\",\n    \"timeoutSeconds\": 300\n  }\n}"
      },
      {
        "title": "Safety & Compliance",
        "body": "Daily send limits: Max 50 LinkedIn connection requests/day, 100 messages/day\nEmail limits: Max 100 cold emails/day (avoid spam flags)\nOpt-out handling: If someone replies \"not interested\" / \"unsubscribe\", immediately set status to \"Opted Out\" and never contact again\nBounce handling: If email bounces, mark as \"Bounced\" and try alternate email patterns\nCAN-SPAM compliance: Include sender identity, physical address option, and opt-out mechanism in emails\nLinkedIn ToS: Keep connection notes professional, don't spam InMails\nCool-down: If a lead hasn't replied after full sequence, wait 90 days before any re-engagement"
      },
      {
        "title": "Analytics",
        "body": "After each sequence run, track:\n\nActive Sequences: 85 leads\n├── Step 1 (Initial): 20 leads\n├── Step 2 (Follow-up): 35 leads\n├── Step 3 (Value-add): 18 leads\n├── Step 4 (Break-up): 12 leads\n│\nOutcomes:\n├── Replied: 23 (27% reply rate)\n├── Converted: 8 (9.4% conversion)\n├── Opted Out: 3 (3.5%)\n├── Bounced: 2 (2.4%)\n└── No Response (completed): 15 (17.6%)"
      }
    ],
    "body": "Outreach Sequencer — Multi-Step Personalized Campaigns\n\nDesign, schedule, and execute multi-step outreach sequences across LinkedIn and email. Each message is personalized per lead using their profile data from DuckDB.\n\nSequence Templates\nTemplate 1: LinkedIn Connection + Message\nDay 0: Send LinkedIn connection request (with note)\nDay 1: If accepted → Send intro message\nDay 3: If no reply → Follow-up message\nDay 7: If no reply → Break-up / value-add message\n\nTemplate 2: Cold Email Sequence\nDay 0: Initial cold email\nDay 3: Follow-up (reply to original thread)\nDay 7: Value-add email (case study, resource)\nDay 14: Break-up email (\"closing the loop\")\n\nTemplate 3: Multi-Channel\nDay 0: LinkedIn connection request\nDay 2: Cold email (if not connected on LinkedIn)\nDay 4: LinkedIn message (if connected) OR email follow-up\nDay 7: Final touch (whichever channel they engaged on)\n\nPersonalization Engine\n\nEach message is generated per-lead using their DuckDB profile data. Use these variables:\n\nVariable\tSource\tExample\n{first_name}\tName field (split)\t\"Jane\"\n{company}\tCompany field\t\"Acme Corp\"\n{title}\tTitle field\t\"CTO\"\n{mutual}\tShared connections/background\t\"Stanford\"\n{trigger}\tWhy reaching out now\t\"saw your Series A\"\n{value_prop}\tWhat you offer them\t\"AI-powered analytics\"\n{pain_point}\tTheir likely challenge\t\"scaling engineering team\"\nPersonalization Rules\nNever use generic openers like \"I hope this finds you well\"\nReference something specific: recent post, company news, shared background\nKeep LinkedIn messages under 300 chars (connection note limit)\nKeep cold emails under 150 words (respect attention)\nVary language across leads — don't send identical messages to people at the same company\nMatch tone to seniority: C-suite gets concise/strategic, ICs get technical/peer-level\nMessage Generation Pattern\n1. Read lead profile from DuckDB\n2. Identify personalization hooks:\n   - Shared background (school, company, location)\n   - Recent company news (web search if needed)\n   - Role-specific pain points\n3. Select message template for sequence step\n4. Generate personalized message\n5. Store message + status in DuckDB\n\nExecution\nLinkedIn Messages (via Browser)\nbrowser → open LinkedIn messaging\nbrowser → search for recipient\nbrowser → open conversation\nbrowser → type personalized message\nbrowser → send\n→ Update DuckDB status: \"Sent\"\n\nEmail (via gog CLI)\ngog gmail send \\\n  --to \"{email}\" \\\n  --subject \"{subject}\" \\\n  --body \"{personalized_body}\" \\\n  --account patrick@candlefish.ai\n\n\nFor follow-ups (reply to thread):\n\ngog gmail reply \\\n  --thread-id \"{thread_id}\" \\\n  --body \"{follow_up_body}\"\n\nSequence Status Tracking\n\nTrack in DuckDB with these status fields:\n\nField\tValues\tNotes\nOutreach Status\tQueued, Sent, Replied, Converted, Bounced, Opted Out\tMain status\nSequence Step\t1, 2, 3, 4\tCurrent step in sequence\nLast Outreach\tdate\tWhen last message was sent\nNext Outreach\tdate\tWhen next step is due\nOutreach Channel\tLinkedIn, Email, Both\tActive channel\nReply Received\tboolean\tTrue if they responded\nThread ID\ttext\tGmail thread ID for email chains\n-- Find leads due for next sequence step\nSELECT \"Name\", \"Email\", \"Outreach Status\", \"Sequence Step\", \"Next Outreach\"\nFROM v_leads\nWHERE \"Outreach Status\" = 'Sent'\n  AND \"Reply Received\" = false\n  AND \"Next Outreach\" <= CURRENT_DATE\nORDER BY \"Next Outreach\";\n\nCron Integration\n\nSet up automated sequence execution:\n\nSchedule: Every 2 hours during business hours (9am-5pm Mon-Fri)\nAction:\n1. Query leads due for next step\n2. For each due lead:\n   a. Generate personalized message for their current step\n   b. Send via appropriate channel\n   c. Update status + advance step\n   d. Set next outreach date\n3. Report: \"Sent 12 messages (8 LinkedIn, 4 email). 3 replies received.\"\n\nCron Job Setup (for OpenClaw)\n{\n  \"name\": \"Outreach Sequencer\",\n  \"schedule\": { \"kind\": \"cron\", \"expr\": \"0 9,11,13,15 * * 1-5\", \"tz\": \"America/Denver\" },\n  \"sessionTarget\": \"isolated\",\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"Run outreach sequence check. Query DuckDB for leads with Next Outreach <= today. Send personalized messages for their current sequence step. Update statuses. Report results.\",\n    \"timeoutSeconds\": 300\n  }\n}\n\nSafety & Compliance\nDaily send limits: Max 50 LinkedIn connection requests/day, 100 messages/day\nEmail limits: Max 100 cold emails/day (avoid spam flags)\nOpt-out handling: If someone replies \"not interested\" / \"unsubscribe\", immediately set status to \"Opted Out\" and never contact again\nBounce handling: If email bounces, mark as \"Bounced\" and try alternate email patterns\nCAN-SPAM compliance: Include sender identity, physical address option, and opt-out mechanism in emails\nLinkedIn ToS: Keep connection notes professional, don't spam InMails\nCool-down: If a lead hasn't replied after full sequence, wait 90 days before any re-engagement\nAnalytics\n\nAfter each sequence run, track:\n\nActive Sequences: 85 leads\n├── Step 1 (Initial): 20 leads\n├── Step 2 (Follow-up): 35 leads\n├── Step 3 (Value-add): 18 leads\n├── Step 4 (Break-up): 12 leads\n│\nOutcomes:\n├── Replied: 23 (27% reply rate)\n├── Converted: 8 (9.4% conversion)\n├── Opted Out: 3 (3.5%)\n├── Bounced: 2 (2.4%)\n└── No Response (completed): 15 (17.6%)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/aspenas/ironclaw-outreach-sequencer",
    "publisherUrl": "https://clawhub.ai/aspenas/ironclaw-outreach-sequencer",
    "owner": "aspenas",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer",
    "downloadUrl": "https://openagent3.xyz/downloads/ironclaw-outreach-sequencer",
    "agentUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ironclaw-outreach-sequencer/agent.md"
  }
}