email-agent
Processes incoming emails for Unite-Hub. Extracts sender data, identifies communication intents, links to CRM contacts, analyzes sentiment, and updates contact records with AI insights.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o email-agent.zip https://jpskill.com/download/17905.zip && unzip -o email-agent.zip && rm email-agent.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17905.zip -OutFile "$d\email-agent.zip"; Expand-Archive "$d\email-agent.zip" -DestinationPath $d -Force; ri "$d\email-agent.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
email-agent.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
email-agentフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Claude が読む原文 SKILL.md(中身を展開)
この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。
Email Agent Skill
Overview
The Email Agent is responsible for:
- Processing unprocessed emails from a workspace
- Extracting sender information and linking to existing contacts
- Analyzing email content for intents and sentiment
- Updating CRM contacts with interaction data
- Creating audit logs for all actions
How to Use This Agent
Trigger
User says: "Process emails for Duncan's workspace" or "Analyze unprocessed emails"
What the Agent Does
1. Fetch Unprocessed Emails
Call: convex query emails.getUnprocessed({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
workspaceId: "kh72b1cng9h88691sx4x7krt2h7v7dehh",
limit: 50
})
Returns array of emails not yet processed (isProcessed: false)
2. For Each Email
Step A: Extract Sender Email
From: "john@techstartup.com"
Extract: sender_email = "john@techstartup.com"
Step B: Link to Contact
Call: convex query contacts.getByEmail({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
workspaceId: "kh72b1cng9h88691sx4x7krt2h7v7dehh",
email: "john@techstartup.com"
})
If exists → contactId = found_contact._id
If NOT exists → Create new contact with:
- email: sender_email
- name: extracted from email or "Unknown"
- source: "email"
- status: "lead"
Step C: Analyze Email Content
Extract these intent keywords:
- "interested" / "partnership" / "collaboration" → intent: inquiry
- "proposal" / "quote" / "pricing" → intent: proposal
- "issue" / "problem" / "help" → intent: complaint
- "?" / "how" / "what" / "when" → intent: question
- "follow up" / "re:" → intent: followup
- "meeting" / "call" / "sync" / "schedule" → intent: meeting
Multiple intents can apply to one email.
Step D: Analyze Sentiment
Read email tone:
- Positive indicators: "excited", "love", "great", "thank you", "appreciate"
- Negative indicators: "problem", "issue", "concerned", "unhappy", "urgent"
- Neutral: Standard business tone
Classify as: positive, neutral, or negative
Step E: Generate Summary
Create 1-2 sentence summary of email intent:
Example: "John from TechStartup is inquiring about Q4 marketing services and partnership opportunities."
Step F: Mark as Processed
Call: convex mutation emails.markProcessed({ orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929", emailId: "email_id_from_step_1", contactId: "contact_id_from_step_b", intents: ["inquiry", "partnership"], sentiment: "positive", summary: "John inquiring about Q4 partnership" })
Step G: Update Contact
If this is a NEW interaction, update:
Call: convex mutation contacts.updateAiScore({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
contactId: "contact_id",
score: 75 // Increase score based on engagement
})
Call: convex mutation contacts.addNote({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
contactId: "contact_id",
note: "Email from John: Inquiring about Q4 partnership. Sentiment: positive. Intents: inquiry, partnership"
})
Step H: Log Audit Event
Call: convex mutation system.logAudit({ orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929", action: "email_processed", resource: "email", resourceId: "email_id", agent: "email-agent", details: JSON.stringify({ from: "john@techstartup.com", intents: ["inquiry", "partnership"], sentiment: "positive", contactLinked: true }), status: "success" })
Error Handling
If something fails:
Call: convex mutation system.logAudit({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
action: "email_processing_error",
resource: "email",
resourceId: "email_id",
agent: "email-agent",
details: JSON.stringify({ error: "error message" }),
status: "error",
errorMessage: "description"
})
Then continue to next email (don't stop).
Summary Output
After processing all emails, provide:
✅ Email Processing Complete
Total processed: X
Successfully linked: X
New contacts created: X
Intents extracted: X
Average sentiment: X
Contacts engaged:
- John Smith (TechStartup) - positive, inquiry
- Lisa Johnson (eCommerce) - positive, proposal
- Carlos Rodriguez (Agency) - positive, collaboration
Next steps:
1. Review high-priority contacts (positive sentiment + inquiry)
2. Generate followup emails for warm leads
3. Schedule meetings with decision-makers
Key Points
- Org isolation: All operations scoped to
orgId - Workspace scope: Process only emails from target workspace
- Contact linking: Always try to link email to existing contact
- AI scoring: Increase contact score when they engage (email received)
- Audit trail: Log every action for compliance
Example: Processing One Email
Input Email:
From: john@techstartup.com
Subject: Interested in your services
Body: Hi Duncan, we're looking to revamp our marketing strategy for Q4. Would love to chat about partnership opportunities.
Agent Process:
- ✅ Extract sender:
john@techstartup.com - ✅ Query contact: Found "John Smith" in contacts
- ✅ Extract intents:
["inquiry", "partnership"] - ✅ Analyze sentiment:
"positive"(enthusiastic tone) - ✅ Generate summary: "John inquiring about Q4 marketing strategy and partnership"
- ✅ Mark email processed with contact link
- ✅ Increase contact AI score from 68 → 78
- ✅ Add note with timestamp and details
- ✅ Log audit event with full context
Result:
- Contact updated with fresh interaction data
- Audit trail shows agent processed email
- Contact now appears in "high-value prospects" due to increased score