Get Started with Aeion Inbox
Set up your AI-powered unified inbox in 5 steps. Spam detection, smart rules, Gmail-like search, AI drafting, and conversation threading—all in under 20 minutes.
Configure AI Spam Detection
| Score | Label | Action |
|---|---|---|
| 0-30 | safe | Deliver to inbox |
| 31-70 | suspicious | Deliver with warning banner |
| 71-100 | spam | Route to spam folder |
Configure Email Drafting AI
Go to Inbox → Settings → AI Drafting.
Drafting Configuration:
```typescript { "drafting": { "enabled": true, "defaultTone": "professional",
"tones": { "professional": { "temperature": 0.7, "maxLength": 500, "includeSignature": true }, "friendly": { "temperature": 0.8, "maxLength": 300, "includeEmoji": false }, "urgent": { "temperature": 0.5, "maxLength": 200, "includeCallToAction": true } },
"providers": [ { "provider": "openai", "model": "gpt-4o", "fallbackEnabled": true } ] } } ```
Draft Email Reply (API):
bash
POST /inbox/conversations/{conversationId}/smart-reply
{
"conversationId": "conv-xxx",
"tone": "professional",
"includeContext": true
}
Response:
typescript
{
"subject": "Re: Invoice #12345 - Questions",
"body": "Hi Sarah,\n\nThank you for reaching out regarding invoice #12345. I'd be happy to clarify the line items you mentioned.\n\nThe additional charge is for the premium support package that was added on March 15th. Would you like me to send over the detailed breakdown?\n\nBest regards,\nJohn",
"suggestedActions": [
"Attach invoice breakdown PDF",
"Schedule a call to discuss",
"Send to customer"
]
}
Draft New Email (API):
bash
POST /inbox/draft
{
"to": ["client@company.com"],
"subject": "Quarterly Review Meeting",
"context": "Need to schedule Q2 review with Acme Corp, preferably Tuesday or Thursday afternoon",
"tone": "professional"
}
Response:
typescript
{
"subject": "Quarterly Review Meeting - Q2 2026",
"body": "Hi,\n\nI hope this email finds you well. I wanted to reach out regarding scheduling our quarterly business review for Q2 2026.\n\nWould you be available on Tuesday or Thursday afternoon this week or next? I'm flexible and can work around your schedule.\n\nPlease let me know what works best for you, and I'll send over a calendar invitation.\n\nBest regards,\nJohn"
}
Set Up Email Rules
| Operator | Use Case | Example |
|---|---|---|
| `contains` | General text match | from contains "@acme.com" |
| `equals` | Exact match | subject equals "Invoice" |
| `starts_with` | Prefix match | subject starts_with "RE:" |
| `ends_with` | Suffix match | from ends_with "@vendor.com" |
| `not_contains` | Exclude | body not_contains "unsubscribe" |
| Action | Result | Example |
| ---------------- | ------------------------------ | ----------------------- |
| `move_to_folder` | File the message into a folder | move_to_folder:VIP |
| `mark_read` | Mark the message read | mark_read |
| `star` | Star the conversation | star |
| `delete` | Move the conversation to trash | delete |
| `forward_to` | Forward to another address | forward_to:ops@acme.com |
Configure Gmail-Like Search
| Query | Description |
|---|---|
| `from:boss@company.com` | Emails from specific sender |
| `subject:invoice has:attachment` | Invoices with attachments |
| `is:unread after:2026-04-01` | Unread since April 1st |
| `label:VIP is:unread` | Unread VIP conversations |
| `in:sent to:client@acme.com` | Sent to specific client |
| `quarterly report is:starred` | Starred items with "quarterly report" |
Configure SMTP & Notifications
Go to Inbox → Settings → SMTP.
SMTP Configuration:
bash
POST /inbox/settings/smtp
{
"host": "smtp.aeionos.com",
"port": 587,
"secure": true,
"auth": {
"username": "notifications@aeionos.com",
"password": "xxx"
},
"from": {
"email": "notifications@aeionos.com",
"name": "Aeion Notifications"
},
"limits": {
"maxRecipients": 50,
"maxEmailsPerMinute": 100
}
}
Notification Preferences:
```typescript { "notifications": { "newMessage": { "email": true, "push": true, "inApp": true }, "mentioned": { "email": true, "push": true, "inApp": true }, "assigned": { "email": true, "push": true, "inApp": true }, "statusChange": { "email": false, "push": true, "inApp": true } },
"digest": { "enabled": true, "frequency": "daily", // hourly, daily, weekly "includeUnread": true, "includeAssigned": true },
"quietHours": { "enabled": true, "start": "22:00", "end": "07:00", "timezone": "America/Los_Angeles" } } ```
Send Email (API):
bash
POST /inbox/messages/send
{
"to": ["client@company.com"],
"cc": ["manager@company.com"],
"subject": "Meeting Request",
"body": "Hi,\n\nI would like to schedule a meeting to discuss the quarterly results. Please let me know your availability.\n\nBest regards,\nJohn"
}
Response:
typescript
{
"success": true,
"messageId": "msg-xxx",
"sentAt": "2026-05-11T10:30:00Z"
}
Get Conversation Messages (API):
bash
GET /inbox/conversations/{conversationId}/messages
Response:
typescript
{
"conversationId": "conv-xxx",
"threadId": "thread-xxx",
"messages": [
{
"id": "msg-001",
"from": { "name": "Client", "email": "client@acme.com" },
"subject": "Q2 Project Update",
"textBody": "Hi,\n\nHere are the updates for Q2...",
"hasAttachment": true,
"createdAt": "2026-05-10T14:00:00Z"
},
{
"id": "msg-002",
"from": { "name": "John", "email": "john@aeionos.com" },
"subject": "Re: Q2 Project Update",
"textBody": "Hi,\n\nThank you for the update. I have a few questions...",
"createdAt": "2026-05-10T15:30:00Z"
}
]
}
Update Conversation (API):
bash
PATCH /inbox/conversations/{conversationId}
{
"tags": ["VIP", "finance"],
"assignee": "agent-123",
"priority": "high",
"status": "open"
}
Quick Reference
AI Endpoints:
```bash # Detect spam POST /inbox/messages/{messageId}/analyze
# Draft reply POST /inbox/conversations/{conversationId}/smart-reply
# Draft new email POST /inbox/draft ```
Search Endpoints:
```bash # Search conversations GET /inbox/search
# Parse query (debug) GET /inbox/search/parse ```
Rules Endpoints:
```bash # Create rule POST /api/v1/inbox_rules
# List rules GET /api/v1/inbox_rules
# Update rule PATCH /api/v1/inbox_rules/{ruleId}
# Delete rule DELETE /api/v1/inbox_rules/{ruleId} ```
Conversation Endpoints:
```bash # List conversations GET /inbox/conversations
# Get conversation GET /inbox/conversations/{id}
# Update conversation PATCH /inbox/conversations/{id}
# Get messages GET /inbox/conversations/{id}/messages ```
Email Endpoints:
```bash # Send email POST /inbox/messages/send
# Get delivery status GET /inbox/delivery/{messageId} ```
Settings Endpoints:
```bash # Update AI config POST /inbox/settings/ai
# Update SMTP POST /inbox/settings/smtp
# Update notifications POST /inbox/settings/notifications ```
FAQ
Aeion analyzes sender reputation, subject, and body to produce a spam score from 0-100. Scores above 70 route to spam, above 30 show a warning banner. Provider routing includes automatic failover.
14+ operators: from:, to:, subject:, has:attachment, is:starred, is:unread, is:pinned, is:muted, before:, after:, label:, in:sent/drafts/archive/trash. Bare text searches subject + body.
Rules evaluate in priority order (lowest number first). Condition fields: from, subject, body, to. Operators: contains, equals, starts_with, ends_with, not_contains. Actions: move_to_folder, mark_read, star, delete, forward_to. A stop-processing flag can halt lower-priority rules once a rule matches.
Aeion generates replies using conversation context. Tones: professional (default), friendly, urgent. Configurable providers and models. Smart tone adjustment based on conversation history.
Messages grouped by threadId. Oldest-to-newest ordering. Participant tracking. Status synchronization across thread.
Host, port (587 for TLS), secure flag, auth credentials, from address. Rate limits: max recipients (50) and emails per minute (100).
Configurable per event type (newMessage, mentioned, assigned, statusChange). Channels: email, push, in-app. Digest mode: hourly/daily/weekly. Quiet hours support.
Quoted values are treated as a single term — `from:"john smith@company.com"` searches for that exact sender.
Provider routing includes fallback. If the primary provider fails, Aeion automatically tries the secondary. If all providers fail, the message is left unscored rather than misclassified.
Lower number = higher priority. Rule with priority 1 runs before priority 2. If a rule is marked to stop processing, subsequent rules are skipped.
Yes. Attachments are supported with filename, content type, and file content.
Every outbound message gets a delivery record starting at "pending," updated to sent/delivered/bounced as status callbacks arrive. Error reasons are captured for failed deliveries.
Notifications suppressed during configured hours (e.g., 10 PM - 7 AM). Timezone-aware. Important alerts can still come through via escalation rules.