agentmail
agentmail
Purpose
This skill enables an AI agent to autonomously manage emails, including classification, response drafting, and scheduling, using AI-driven automation for efficient email handling.
When to Use
Use this skill for high-volume email inboxes, automated customer support, personal productivity workflows, or integrating email tasks into broader AI agent operations to reduce manual intervention.
Key Capabilities
- Classify emails based on content, sender, or keywords using machine learning models.
- Draft response emails with customizable templates and tone adjustments.
- Schedule email sends or follow-ups based on user-defined rules or calendar integration.
- Manage email threads by summarizing, prioritizing, or archiving based on criteria.
- Integrate with email providers via APIs for real-time operations.
Usage Patterns
To use agentmail, invoke it via CLI or API calls, passing necessary parameters like email IDs or content. Always set the API key via environment variable $AGENTMAIL_API_KEY. For CLI, prefix commands with authentication flags. Example pattern: Fetch an email, classify it, draft a response, then schedule if needed. Chain commands in scripts for automation.
Common Commands/API
CLI commands require Node.js environment; install via npm install agentmail-cli. API endpoints are under https://api.openclaw.com/agentmail/v1.
-
Classify an email:
CLI:agentmail classify --email-id 12345 --key $AGENTMAIL_API_KEY
API: POST /api/agentmail/classify with JSON body:{"email_id": "12345", "api_key": "$AGENTMAIL_API_KEY"}
Code snippet:curl -X POST https://api.openclaw.com/agentmail/v1/classify \ -H "Content-Type: application/json" \ -d '{"email_id": "12345", "api_key": "'$AGENTMAIL_API_KEY'"}' -
Draft a response:
CLI:agentmail draft --email-id 12345 --tone professional --key $AGENTMAIL_API_KEY
API: POST /api/agentmail/draft with body:{"email_id": "12345", "tone": "professional", "api_key": "$AGENTMAIL_API_KEY"}
Code snippet:const response = await fetch('https://api.openclaw.com/agentmail/v1/draft', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({email_id: '12345', tone: 'professional', api_key: process.env.AGENTMAIL_API_KEY}) }); -
Schedule an email:
CLI:agentmail schedule --email-content "Reply text" --send-at "2023-10-01T10:00:00Z" --key $AGENTMAIL_API_KEY
API: POST /api/agentmail/schedule with body:{"email_content": "Reply text", "send_at": "2023-10-01T10:00:00Z", "api_key": "$AGENTMAIL_API_KEY"}
Config format: Use JSON for scheduling rules, e.g.,{"rules": [{"condition": "priority>high", "action": "schedule in 2 hours"}]}.
Integration Notes
Integrate agentmail with email services like Gmail or Outlook by providing OAuth tokens via config files (e.g., config.json: {"provider": "gmail", "token": "$GMAIL_TOKEN"}). For AI agent workflows, use webhooks to trigger on new emails (e.g., POST to /api/agentmail/webhook). Ensure compatibility by matching API versions; handle dependencies like Node.js v14+. To combine with other skills, export results as JSON and pipe to next command, e.g., agentmail classify ... | jq '.category' | other-skill-process.
Error Handling
Check for HTTP status codes: 401 for auth failures (retry with $AGENTMAIL_API_KEY), 404 for missing emails (log and skip), 500 for server errors (exponential backoff). In CLI, use --verbose flag for detailed logs. Handle common issues like rate limits by adding delays (e.g., sleep 5 seconds after 429 response). Validate inputs before calls, e.g., ensure email IDs are strings via regex check: if (!emailId.match(/^\d+$/)) throw new Error('Invalid email ID');. Use try-catch in scripts for graceful recovery.
Concrete Usage Examples
-
Classify and respond to a support ticket email: First, classify:
agentmail classify --email-id 67890 --key $AGENTMAIL_API_KEY. If classified as "support", draft:agentmail draft --email-id 67890 --tone helpful --key $AGENTMAIL_API_KEY. Then schedule:agentmail schedule --email-content $(cat response.txt) --send-at now --key $AGENTMAIL_API_KEY. This automates ticket responses in a helpdesk workflow. -
Manage personal email scheduling: Fetch unread emails via API, classify them:
curl -X POST https://api.openclaw.com/agentmail/v1/classify -d '{"email_id": "54321", "api_key": "'$AGENTMAIL_API_KEY'"}'. For high-priority, draft and schedule:agentmail draft --email-id 54321 --tone formal --key $AGENTMAIL_API_KEY; agentmail schedule --email-content "Follow up" --send-at "tomorrow" --key $AGENTMAIL_API_KEY. Use in a daily script for inbox zero.
Graph Relationships
- Related to: email (direct), ai (cluster), agent (cluster), automation (tag).
- Connected clusters: community (same as this skill).
- Dependencies: May require skills like "email-parser" for input preprocessing or "scheduler" for advanced timing.