From gtm-skills
Fetches unread lead replies from Instantly unibox, classifies intent, drafts contextual responses, and sends replies via the Instantly API.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gtm-skills:inbox-replyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage and reply to lead responses in the email sequencing inbox.
Manage and reply to lead responses in the email sequencing inbox.
| Variable | Service |
|---|---|
INSTANTLY_API_KEY | Instantly |
Base URL: https://api.instantly.ai/api/v2
| Input | Required | Source |
|---|---|---|
| Instantly API key | yes | env var |
| Context file | yes | context file (voice, product, proof points) |
| Campaign ID | no | user selection or list from API |
Fetch unread received emails from the unibox.
List unread: GET /emails with is_unread=true, email_type=received, sort_order=desc, limit=50.
If the user specifies a campaign, add campaign_id filter. If they want focused inbox only, add mode=emode_focused.
Present a summary table:
| # | From | Company | Subject | Preview | Received |
Ask the user which conversations to work on, or process all.
For each selected reply, load the full conversation thread.
Get thread: GET /emails?search=thread:{thread_id}&sort_order=asc
This returns the original outbound email(s) and all replies in chronological order, giving full context for drafting a response.
Read each lead reply and classify into one of these categories:
Interested → wants to learn more, asks questions, requests a call
Objection → raises concern but door is not closed (pricing, timing, fit)
Not interested → clear rejection, asks to stop
Auto-reply → OOO, bounce, auto-responder
Meeting request → explicitly asks to book time
Question → asks a specific question without clear buying signal
Referral → redirects to someone else at the company
Present classifications to the user for confirmation before drafting.
Read the context file for voice rules, product description, proof points, and use case framings. Draft a reply for each conversation based on intent:
Interested → confirm interest, propose next step (call or resource)
Objection → address concern directly, offer proof point if relevant
Question → answer the question, bridge to value
Meeting request → confirm availability, suggest booking link or times
Referral → thank them, ask for intro or reach out to referral directly
Not interested → short, respectful close; do not push
Auto-reply → skip, no reply needed
Rules for all replies:
Present each draft alongside the original thread for the user to review and edit.
Before sending, present a final checklist for each reply:
| # | To | Via Account | Subject | Intent | Action |
The user must confirm before any reply is sent.
Send reply: POST /emails/reply with:
eaccount: the same email account that sent the original outboundreply_to_uuid: the ID of the lead's most recent messagesubject: keep the existing thread subject (Re: ...)body: the approved reply in { "text": "...", "html": "..." }Send one at a time. Report success or failure for each.
After sending:
POST /emails/threads/{thread_id}/mark-as-readPOST /leads/update-interest-status with lead_email and appropriate interest_value| # | Lead | Intent | Reply Sent | Status Updated |
For replies the user wants to skip or defer:
Never send a reply the user has not explicitly approved.
See references/instantly-inbox-api.md for full Instantly Unibox and Reply API documentation.
npx claudepluginhub extruct-ai/gtm-skills --plugin gtm-skillsRuns end-to-end B2B cold-email outreach: enriches prospects via Apollo, scrapes signals from company sites and LinkedIn, drafts personalized emails with proven hook frameworks, sends via Gmail, and routes replies into labeled folders.
Builds and launches Instantly.ai cold email campaigns end-to-end via API v2, creating campaigns, sequences, adding leads, and starting outreach.
Scans active sales email threads for follow-ups needed: waiting replies, quiet threads past silence thresholds, unanswered questions. Useful for 'who do I need to follow up with' or 'stale threads'.