Mail 🟑 PREVIEW (advanced) - Email Client

Mail delivery flow

Your intelligent inbox

Preview β€” advanced. Mail is functional and close to stable, but is not yet part of the supported surface. It is the most advanced of the larger preview apps, alongside Sheets.

Mail Interface Screen

Overview

Mail is the email application in General Bots Suite. Read, compose, and organize your emails with AI assistance. Mail helps you write better emails, find important messages, and stay on top of your inbox without the clutter.


Features

Folders

FolderDescription
πŸ“₯ InboxIncoming messages
⭐ StarredImportant emails
πŸ“€ SentSent messages
πŸ“ DraftsUnsent drafts
πŸ—‘οΈ TrashDeleted emails

Labels

LabelIconUse For
UrgentπŸ”΄Time-sensitive
Personal🟒Private emails
WorkπŸ”΅Professional
Finance🟑Bills & money
Custom🟣Create your own

Email Actions

ActionDescription
ReplyRespond to sender
Reply AllRespond to all recipients
ForwardSend to someone else
ArchiveRemove from inbox
StarMark as important
LabelOrganize with labels
DeleteMove to trash

Keyboard Shortcuts

ShortcutAction
CCompose new email
RReply
AReply all
FForward
EArchive
SStar/unstar
DeleteMove to trash
Ctrl+EnterSend email
EscapeClose/cancel
↑ / ↓Navigate emails

Email via Chat

Checking Your Inbox

Reading an Email

Composing an Email

AI-Assisted Writing

Searching Emails


API Endpoints

EndpointMethodDescription
/api/email/inboxGETList inbox messages
/api/email/sendPOSTSend email
/api/email/draftPOSTSave draft
/api/email/:idGETRead email
/api/email/:idDELETEDelete email
/api/email/:id/starPOSTToggle star
/api/email/:id/labelPOSTAdd label
/api/email/searchGETSearch emails

Query Parameters

ParameterValuesDefault
folderinbox, sent, drafts, trash, starredinbox
labelLabel namenone
unreadtrue, falsenone
limit1-10025
offsetNumber0

Send Email Request

{
    "to": ["john@company.com"],
    "cc": [],
    "bcc": [],
    "subject": "Project Update",
    "body": "Hi John,\n\nHere's the latest update...",
    "attachments": ["file-id-123"]
}

Email Response

{
    "id": "msg-456",
    "from": "sarah@company.com",
    "to": ["you@company.com"],
    "subject": "Q2 Report Review",
    "body": "Hi,\n\nPlease review the attached...",
    "date": "2025-05-15T10:32:00Z",
    "read": false,
    "starred": true,
    "labels": ["work"],
    "attachments": [
        {
            "id": "att-789",
            "name": "Q2-Report.pdf",
            "size": 2457600
        }
    ]
}

Connecting a Mailbox

The Mail application supports two ways of authenticating a mailbox, and the account form offers both.

Password (IMAP/SMTP)

Fill in the mailbox address, the password and the IMAP/SMTP hosts. The accounts is verified against the server before it is stored, so a host that cannot be reached is rejected with the reason instead of appearing as an empty inbox. A mailbox that requires an app password (Gmail with two-factor authentication, for example) is added the same way, using the app password.

Provider sign-in (Microsoft 365, Outlook.com, Gmail)

Microsoft no longer accepts a password over IMAP/SMTP, so those mailboxes are connected through the provider’s own consent screen:

  1. Enter the mailbox address in the account form.
  2. Choose Connect Microsoft 365 or Connect Google.
  3. Approve the requested mail scopes on the provider’s page.

The refresh token is stored with the account, so the connection is renewed in the background and the mailbox keeps syncing without a new sign-in.

An administrator configures the client credentials and the signing secret:

MAIL_OAUTH_MICROSOFT_CLIENT_ID / MAIL_OAUTH_MICROSOFT_CLIENT_SECRET
MAIL_OAUTH_GOOGLE_CLIENT_ID / MAIL_OAUTH_GOOGLE_CLIENT_SECRET
MAIL_OAUTH_STATE_SECRET
MAIL_OAUTH_REDIRECT_BASE   # optional, defaults to the request host

Sync Health

Every account shows a Sync error badge while the last background pass failed. Hover the badge for the reason. Without it an unreachable mailbox was indistinguishable from an empty one.


Configuration

Configure email defaults in config.csv:

key,value
smtp-server,smtp.gmail.com
smtp-port,587
imap-server,imap.gmail.com
imap-port,993
email-from,Your Name <you@gmail.com>

Troubleshooting

Emails Not Loading

  1. Check internet connection
  2. Verify email credentials
  3. Check IMAP settings
  4. Look for the Sync error badge on the account and read its reason
  5. Refresh the page

Send Fails

  1. Check recipient address
  2. Verify SMTP settings
  3. Check attachment size (max 25MB)
  4. Try again in a moment

Missing Emails

  1. Check spam/junk folder
  2. Verify filters aren’t hiding emails
  3. Check trash folder
  4. Sync may take a few minutes

Integration Features

Snooze

Hide an email until later. Click the snooze button in the toolbar to pick a time (later today, tomorrow, next week). The email reappears automatically at the chosen time via POST /api/email/snooze.

CRM Panel

When viewing an email, the CRM panel automatically looks up the sender via GET /api/crm/contact/by-email/:email and shows linked deals. Click Log to CRM to record the email against a contact or opportunity.

AI Lead Suggestion

If the email looks like a sales inquiry, an AI banner appears offering to create a lead via POST /api/ai/extract-lead.

Campaign Actions

Add the sender to a marketing list directly from the email via POST /api/crm/lists/:id.

Smart Replies

AI-suggested short replies appear below the email content.

Enabling Mail

Add mail to apps= in botserver/.product:

apps=...,mail

See Also