install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/Harmeet10000/skills/instantly-autoreply" ~/.claude/skills/comeonoliver-skillshub-instantly-autoreply && rm -rf "$T"
manifest:
skills/Harmeet10000/skills/instantly-autoreply/SKILL.mdsource content
Instantly Autoreply
Purpose
Automatically generate and send intelligent replies to incoming emails from Instantly campaigns, using campaign-specific knowledge bases and web research.
Inputs
The webhook receives this payload from Instantly (reply event):
: ISO timestamp when the event occurredtimestamp
: Type of event (e.g., "reply")event_type
: UUID of the campaigncampaign_id
: Name of the campaign (format: "CAMPAIGN_ID | Campaign Name")campaign_name
: The prospect's email addresslead_email
: The sending account (eaccount)email_account
: UUID of the email to reply to (use as reply_to_uuid)email_id
: Subject line of the incoming replyreply_subject
: Full plain text content of the incoming replyreply_text
: Full HTML content of the incoming replyreply_html
: Short preview of the reply contentreply_text_snippet- Additional lead data fields may be present
Process
Step 1: Parse Incoming Reply
The incoming email content is already in the payload:
orreply_text
: The full content of their replyreply_html
: Their subject line Use this directly - no need to fetch.reply_subject
Step 2: Get Full Conversation History (Optional)
If more context is needed, call
instantly_get_emails with the lead_email to retrieve prior emails (limit 10).
Step 3: Extract Campaign ID
Parse the campaign_name to get the ID (everything before the "|"). Or use
campaign_id directly if available.
Step 4: Lookup Knowledge Base
Call
read_sheet on spreadsheet 1QS7MYDm6RUTzzTWoMfX-0G9NzT5EoE2KiCE7iR1DBLM to find the row where column "ID" matches the campaign ID. Extract:
: Campaign-specific context and talking pointsKnowledge Base
: Example replies to match toneReply Examples
Step 5: Skip if No Knowledge Base
If no knowledge base found for this campaign, skip processing and return empty.
Step 6: Generate Reply
Using extended thinking, generate a reply following these rules:
Role & Tone:
- Write as the email_account (first person: 'I', 'we')
- Concise, confident, friendly, non-corporate, outcome-focused
- No em dashes (—), no over-explaining, no hype, no filler
- If followup: be light but persistent, illustrate value props
Research (use web_search tool):
- Research the sender and their company/clinic thoroughly
- Look up any products, tools, locations, acronyms you don't recognize
- Use research to tailor the reply (don't mention you searched)
When to Return Empty (no reply):
- If additional email would be needless (they confirmed call, logistics done)
- If explicitly negative: "DO NOT EMAIL", "UNSUBSCRIBE", "remove me from list"
- If no knowledge base found
Output Format:
- 3-8 sentences unless thread requires more
- HTML with
for line breaks,<br>
between paragraphs<br><br> - No
,<html>
,<body>
tags<p> - Sign off with first name from email_account
Step 7: Filter Empty Replies
If the generated reply is empty or just whitespace, do NOT send. Return success with
skipped: true.
Step 8: Send Reply
Call
instantly_send_reply with:
: The email_account from inputeaccount
: The email_id from inputreply_to_uuid
: The reply_subject from inputsubject
: The generated replyhtml_body
Output
Return:
: "success" or "error"status
: true if reply was intentionally emptyskipped
: true if reply was actually sentreply_sent
: ID from Instantly if sentmessage_id
Error Handling
- If Instantly API fails: Log error, return error status
- If knowledge base lookup fails: Skip this email (no KB = no reply)
- If AI generation fails: Log error, do not send partial reply
Knowledge Base Sheet Structure
Spreadsheet ID:
1QS7MYDm6RUTzzTWoMfX-0G9NzT5EoE2KiCE7iR1DBLM
| ID | Campaign Name | Knowledge Base | Reply Examples |
|---|---|---|---|
| abc123 | Dental Outreach | [context...] | [examples...] |