← Back to app

KanMail Help Center

Your inbox, CRM, calendar, and money — on one board. Pick a guide below, or search the box on the left. Everything here describes the live app; admin pages are documentation only.

Getting started

KanMail turns your shared inbox into a Kanban board. Incoming email becomes a card; you move cards across lanes as work progresses, then mark them done. Around the board sit the CRM, Calendar, Money and reporting views.

Finding your way around

The navigation lives in the header on desktop and in the bottom bar (plus a More sheet) on phones. The buttons you see depend on your role and which modules your admin has enabled.

Board

Your Kanban of email cards. This is home base.

Calendar

Bookings and meeting invites, with month / week / day views.

Done

Completed cards, archived out of the board.

Report

Fixed analytics: incoming volume, planned time, time by client.

CRM

Companies, contacts, quotes, invoices and more — list or kanban.

Money

Ledger and recurring invoices (accounting / admin roles).

Approvals

AI-drafted replies waiting for your approve / edit / discard.

Admin

Settings for administrators (see the Admin guide).
Tip: on a phone, tap More in the bottom bar to reach CRM, Money, Admin and your settings (My Mailboxes, Tag routing, Nextcloud Deck, Client / Project mapping).

The Board & lanes

The board has four working lanes plus a separate Done view. Cards flow left–to–right as you work them.

New / Inbox Priority In Progress Pending Done
LaneWhat it means
New / InboxWhere every new email card lands. Triage from here.
PriorityPull urgent cards here so they stay on top.
In ProgressYou are actively working the card.
PendingWaiting on someone else (a reply, an approval, a delivery).
DoneFinished. Cards here leave the board and appear in the Done view.

Moving and finishing cards

  • Drag a card between lanes to change its status. On a phone, the board scroll-snaps lane-by-lane; use Show Hidden Columns if a lane is collapsed.
  • Open a card to read the email, see the AI summary, write notes, and reply.
  • Mark done from inside the card, or drag it to Done. Done cards are archived out of the board but stay searchable in the Done view.
Filters: use the Filters button to narrow the board by user, client, project, tag and more. The little count badge shows how many filters are active.

Email → cards

KanMail polls your mailboxes about once a minute. Each new message is funnelled through a single ingest step that decides what to do with it.

  1. A new email arrives in a watched mailbox (the shared inbox or any mailbox you added under My Mailboxes).
  2. KanMail checks it against the ignore and spam sender lists, and de-duplicates by Message-ID so a forwarded copy doesn’t create a second card.
  3. If it passes, a new card is created in the New / Inbox lane and matched to a client / project where possible.
  4. If AI auto-processing is on, the card is summarised and classified (unless it’s too short or a trivial “thanks” reply — those are skipped).
No card appeared? The sender may be on the ignore/spam list, the message may be a duplicate of an existing thread (it attaches to that card instead), or it may be a calendar invite (those go to Calendar → Pending invitations, not the board). See the FAQ for the full checklist.

CRM modules

Open CRM to work your business records. The CRM is organised into entity tabs. Which tabs you see depends on your role.

Companies

Your clients and organisations. Opens the Company 360 cockpit.

Contacts

People at those companies.

Projects

Pieces of work, linked to a company.

Quotes

Proposals you send to win work.

Orders

Confirmed work between quote and invoice.

Invoices

Bills you issue and track to paid.

Products

Your catalogue of items / services.

Time Billing

Logged time, marked unbilled / billed / written-off.

Ledger

Money in and out (accounting roles).

List view vs Kanban view

Every CRM tab offers two layouts. Switch with the List / Kanban buttons in the toolbar (your choice is remembered).

  • List — a sortable table. Toggle Comfortable / Compact density, hover a row for Open / Edit / quick-status, tick checkboxes to bulk-change status, and page through results.
  • Kanban — cards grouped into columns by status (or any other field). Drag a card between columns to change its value — the same drag-to-move feel as the email board.

Search & filter

In list view, type in the Search box to find records instantly (it searches as you type). Each drop-down filter narrows by a field — for example only Active companies. Set up a view you like, then click Save view to keep that search, filter and sort as a named chip you can click again later.

Click a company row to open its Company 360 page — one screen with that client’s contacts, quotes, invoices, projects, time and files.

Quotes & invoices

Quotes and invoices each move through a status workflow. You change status from the record’s status field, the list’s quick-status arrow, a bulk action, or by dragging the card on the Kanban.

Invoice statuses

draft validated sent

An invoice starts as draft, becomes validated once it’s final, then sent to the client, and finally paid. (You can also jump validated → paid, or mark an invoice abandoned.) The sent and paid dates are stamped automatically the first time a card reaches those states.

The “drag to Paid” flow: open the Invoices tab in Kanban view and drag an invoice card into the Paid column. That marks it paid and records the paid date — the fastest way to clear settled invoices.

Quote statuses

draft sent accepted / refused

A quote is draft, then sent, then either accepted or refused (a refused quote can be re-sent). Quotes also carry a sales pipeline stage (lead → qualified → proposal → won / lost) so you can track them on a kanban.

Time Billing

Logged time appears under Time Billing as rows marked unbilled, billed or written‑off. Unbilled time is summed per company so you (or accounting) can review what’s ready to invoice. The Company 360 page surfaces unbilled hours for that client.

Note: turning unbilled time into an invoice, and converting a quote straight into an invoice, are done by your accounting workflow today — there is no one-click “convert” button in the CRM yet. Create the invoice and link the time/quote records.

Calendar

The Calendar view shows your bookings in Month, Week or Day layouts (Week by default, 08:00–19:00). Use the View: selector to see My, Team or a specific user’s calendar, export a Report CSV, or Subscribe to copy an iCal feed URL into your phone/desktop calendar.

Booking time from a card

The left rail of the Calendar lists your open cards grouped by lane (Priority, New / Inbox, In Progress, Pending) under a Cards heading.

  1. Find the card you want to schedule in the left rail.
  2. Drag it onto a time slot on the calendar grid — you’ll see “Added to calendar”.
  3. Drag or resize the event to adjust it. Use the trash icon on an event to delete the booking.

Accepting emailed meeting invites

When someone emails you a meeting invite (a .ics calendar attachment), KanMail recognises it and puts it in a Pending invitations strip above the calendar grid (with a count badge).

  1. Open Calendar. The invite shows its title, time, location and organiser.
  2. Click Accept to add it to your calendar, or Decline to dismiss it.
  3. If your CalDAV connection is set up, an accepted invite is also pushed to your Nextcloud calendar so it appears on your phone.
Two-way sync: connecting a personal calendar lets your bookings appear on your phone and lets accepted invites land in your real calendar. Your admin sets this up per user — see CalDAV per-user setup in the Admin guide.
Heads up: Accept / Decline updates your calendar but does not send a reply email back to the organiser.

Per-card discussion & chat

Card discussion (team thread)

Every card has a Discussion thread so your team can talk about that specific email without leaving KanMail.

  1. Open the card and go to its Work tab.
  2. Scroll to Discussion.
  3. Type your message (placeholder “Write a message to the team…”) and click Send — or press Ctrl/Cmd + Enter.

It’s a plain team thread — visible to your colleagues, kept with the card.

Hugo Chat (the chat bubble)

If your admin has enabled chat, a floating chat bubble sits in the corner of the app. Open it for a global Feed and DM channels, and to message Hugo. The same Feed channel can be bridged to a Telegram bot so you can keep up from your phone (see Telegram access).

Dashboard widgets

The first tab inside the CRM view is your Dashboard — a board of KPI tiles and charts. Above it sit fixed hero cards (Open invoices, Quotes awaiting, Needs contact, Cards in work). Below, you can build your own widgets.

Adding a chart widget

  1. On the CRM Dashboard tab, click + Add widget.
  2. Choose an Entity type (Companies, Invoices, Quotes, Time Billing…).
  3. Pick an AggregateCount, Sum of a field, Count / total by a field, or per period over a date.
  4. Pick a Visualisation: Stat tile, Bar chart, Line chart, Pie chart or List. (For per-period data you can also group by Month / Quarter / Year and overlay each year.)
  5. Optionally give it a Title, then click Add.

Each widget has Move up / down, Edit and Remove controls. Your dashboard layout is saved for you.

Pie tip: a pie chart needs a “by field” aggregate (e.g. invoice total by status); a list widget can show 1–3 fields per row.

The Report view

The top-level Report view is a fixed analytics dashboard — separate from the configurable CRM Dashboard. It shows:

  • Incoming Cards by day / week / month.
  • Planned tasks & cards.
  • Time spent by client / project for the current year.
  • Planned time this month and the next three months.
  • ClauDev reports where integrated.

There’s nothing to configure here — it’s a read-only snapshot. To build your own charts, use the CRM Dashboard widgets instead.

Admin Panel overview

Reminder: this guide is documentation. The actual settings live in the in-app Admin view, which only administrators can open. This page contains no secrets — it just explains what each section does.

Open Admin from the navigation. The panel is one scrollable page of stacked sections:

SectionPurpose
SystemRead-only feature flags, editable runtime flags, and Restart app.
Users & RolesAdd users and set their role.
Mailboxes & SMTPManage team / private mailboxes and sending credentials.
Send PolicyWho may send from which mailbox.
CalDAV Calendars / CalDAV passwordsPer-user calendar sync mappings.
Deck Write-backLink KanMail to Nextcloud Deck boards.
Chat & TelegramChat status and the Telegram sender allowlist.
AI System PromptsEdit the prompts the AI pipeline uses.
Ignored / spam sendersBlock senders from creating cards.
AI PipelineRead-only 24h stats: processed / skipped / errors.
CRM Fields & EntitiesManage the custom fields on CRM records.
Restarts: changing a feature flag requires restarting the service to take effect. Sender lists, Telegram authorisations and CalDAV mappings apply live, no restart needed.

Users & roles

Manage people under Admin → Users & Roles. Each user has one role that controls what they can see and do.

RoleCan access
adminEverything, including the Admin Panel, all CRM types, Money, send policy, AI prompts, CalDAV and sender lists.
accountingAll CRM record types plus the Money views (ledger, recurring invoices). No Admin Panel.
salesCompanies, contacts, projects, quotes, orders and products. No invoices, money or admin.
memberThe board, calendar, and Companies / Contacts in the CRM.
Guardrail: KanMail won’t let you demote the last remaining admin — there must always be at least one. The role picker currently offers admin / accounting / member.

AI settings & prompts

KanMail can read, classify and summarise incoming mail, and draft replies. Two areas of the Admin panel cover this:

  • AI System Prompts — edit the wording the pipeline uses for classify / summarise / suggest. There’s a Reset to default if you want the originals back.
  • AI Pipeline — a read-only health panel showing the last 24 hours: how many cards were processed, skipped (and why), and the top errors.

What the AI does

  • Classify — tags each card with a type (support / sales / invoice / task / fyi / spam), an urgency, and the detected language.
  • Summarise — writes a short, thread-aware summary you read at the top of the card.
  • Suggest — recommends a next action and can draft a reply (which appears in the Approvals view for a human to approve, edit or discard).
Skip rules: very short emails and trivial “thanks” replies are intentionally skipped to save AI calls. The card still exists — just without an AI summary. You can always re-run AI on a card from its AI tab (Run again).
Privacy: raw mail and client data are only ever processed by the private AI endpoint on your own network. Anything that crosses to an external system passes through a sanitising gate that pseudonymises client names and redacts emails, phone numbers and IBANs.

Ignore & spam sender lists

Stop unwanted mail from cluttering the board under Admin → Ignored / spam senders.

KindEffect on a matching sender
ignoreNo card is created. The mail is simply left alone.
spamNo card is created; the message is moved to Junk and logged so the AI can learn from it.

You can match an exact address (noreply@example.com) or a whole domain (@example.com). Changes apply live — the next sync respects them, no restart.

Telegram access

KanMail can bridge its chat Feed to a Telegram bot so an allowlisted person can read and reply from Telegram. You manage who’s allowed under Admin → Chat & Telegram.

The pending-approval flow

The intended flow is: a person messages the bot, then an admin approves them. Today the approval step in the panel works like this:

  1. The person sends any message to your Telegram bot. KanMail records their Chat ID but does nothing for them until they’re authorised.
  2. Ask them for their numeric Chat ID (the bot / your logs show it).
  3. In Chat & Telegram → Authorise a sender, enter the Chat ID (required) and, to map them to a KanMail account, their username (must match a KanMail username). Click Add.
  4. They’re now in the allowlist and can use the bot. To revoke, click Remove on their row. Changes apply live.
Note: the panel shows the chat status chip (Enabled / Token set / No token) and the table of authorised senders. The Chat ID approval is the manual Add step above; secrets like the bot token live only in the server config, never in this UI.

CalDAV per-user setup (Nextcloud calendar)

Connecting a calendar lets KanMail two-way sync each user’s bookings with their Nextcloud calendar, and push accepted email invites into it. This is set up per user under Admin → CalDAV.

Before you start

  • The user needs a Nextcloud account they can log into.
  • Their KanMail username must match their Nextcloud login (e.g. jane, not jane@company.com). If they differ, set a separate CalDAV username for that user.

Step 1 — Create a Nextcloud app password

Never use the main Nextcloud password. In Nextcloud: Settings → Security → Devices & sessions, type a name like KanMail, click Create new app password, and copy it immediately (it’s shown only once).

Step 2 — Find the calendar URL

It must point to a calendar collection, in this exact shape:

https://<your-nextcloud-host>/remote.php/dav/calendars/<username>/<calendar-name>/

In Nextcloud Calendar, hover the calendar → ⋯ (three dots) → Copy private link.

Common mistake: do not use the .../principals/users/<user>/ URL — that is not a calendar and will not sync. The URL must contain /calendars/ and end with the calendar name and a trailing slash.

Step 3 — Enter it in KanMail

  1. Go to Admin → CalDAV.
  2. Paste the calendar URL for the user.
  3. Paste the app password.
  4. Save. (Save the URL first, then the password.) Use Clear to remove a connection.

Troubleshooting

SymptomLikely causeFix
401 / auth rejectedWrong username or app passwordConfirm KanMail username = Nextcloud login; regenerate the app password and re-enter it.
429 / Too Many RequestsNextcloud rate-limiting after repeated failed loginsWait 10–15 minutes, fix the credentials, then try once.
Nothing syncs, no errorURL points at principals, not a calendarUse the /calendars/<user>/<name>/ collection URL.
“No calendar mapping for this user”Password saved before the URLSave the calendar URL first, then the password.
Auto-pause: if a connection keeps failing, KanMail pauses it so it doesn’t hammer Nextcloud. After fixing the URL / password, re-save the connection to resume.

The app password is encrypted at rest and never shown again or returned by the API. Using a dedicated app password means you can revoke KanMail’s access without changing the main Nextcloud password.

Nextcloud Deck & email accounts

Nextcloud Deck write-back

Under Admin → Deck Write-back you can link KanMail to Nextcloud Deck boards so board information is visible from a card. Boards are matched by name.

Email accounts (mailboxes)

Add and manage mailboxes under My Mailboxes (the envelope / server icon), or Admin → Mailboxes & SMTP.

  1. Click + Add mailbox. Required: a Label, IMAP host, IMAP username and IMAP password.
  2. Optional: source folder (default INBOX), done folder (default Done), and SMTP credentials (needed to send outbound from this mailbox).
  3. Choose a scope: team (everyone sees its cards) or private (only you).
  4. Save, then use the Test button on the row to verify IMAP / SMTP connectivity. The sync service picks up the new mailbox within about a minute — no restart needed.
Security: SMTP credentials are stored encrypted in the database, never in plain config. Cards from a private mailbox are hidden from everyone but their owner (admins can still see all).

Send policy

By default any authenticated user can send from a team mailbox. To lock down sending, open Admin → Send Policy and grant / revoke send permission per user, per mailbox.

MailboxWho may send
team (default)Any authenticated user.
team (restricted)Only users you’ve granted.
privateThe owner always; others only with a grant.
any — admin userAlways allowed.

Denied send attempts are logged. Outbound sending also requires the compose feature to be enabled and SMTP credentials configured on the mailbox.

Frequently asked questions

Quick answers to the things people ask most. Use the search box on the left to filter.

Why didn’t my email become a card?

Run through this checklist:

  • The sender is on the ignore or spam list (Admin → Ignored / spam senders) — those never create a card.
  • It’s a reply in an existing thread — it attaches to that card instead of making a new one.
  • It’s a duplicate (e.g. a forwarded copy) — KanMail de-duplicates by Message-ID.
  • It’s a calendar invite — it goes to Calendar → Pending invitations, not the board.
  • It arrived in a folder / mailbox KanMail doesn’t watch — check My Mailboxes.
How do I stop mail from a sender?

An admin adds them under Admin → Ignored / spam senders. Use ignore to silently skip them, or spam to skip and move the message to Junk. You can block one exact address or a whole domain (@example.com). It takes effect on the next sync.

Why is my calendar not syncing?

Almost always the calendar URL or app password. Check that:

  • Your KanMail username matches your Nextcloud login.
  • The URL is a calendar collection containing /calendars/ — not a /principals/ URL.
  • You used a Nextcloud app password, not your main password.

See the full table in CalDAV per-user setup → Troubleshooting. If you hit a 429, wait 10–15 minutes before retrying.

How do I accept a meeting invite that was emailed to me?

Open the Calendar view. Emailed invites appear in the Pending invitations strip at the top. Click Accept (or Decline). If your CalDAV connection is set up, accepting also pushes the event to your Nextcloud calendar so it shows on your phone. Note: this updates your calendar but does not email a reply to the organiser.

What does the AI pre-screen / pipeline do?

When enabled, the AI reads each new card and classifies it (type, urgency, language), writes a short summary, and suggests a next action — optionally drafting a reply that lands in the Approvals view for a human to approve, edit or discard. It never sends anything on its own.

A card has no AI summary — why, and can I re-run it?

Very short emails and trivial “thanks / ok” replies are skipped on purpose to save AI calls, so they won’t have a summary. You can always re-run AI manually: open the card, go to the AI tab, and click Run again.

How do I mark an invoice as paid quickly?

Open the Invoices tab in Kanban view and drag the invoice card into the Paid column. That sets the status to paid and stamps the paid date. You can also change status from the invoice form or the list’s quick-status arrow. The full path is draft → validated → sent → paid.

What’s the difference between a quote, an order and an invoice?

A quote is a proposal (draft → sent → accepted / refused). An order is confirmed work in between. An invoice is the bill you issue and track to paid. They reference each other, but turning one into the next is part of your accounting workflow — there isn’t a one-click convert button yet.

How do I add a chart to my dashboard?

Go to CRM → Dashboard and click + Add widget. Choose an entity type, an aggregate (count / sum / by-field / per-period), and a visualisation (stat tile, bar, line, pie or list), give it a title, and click Add. Reorder or edit widgets with their controls. See Dashboard widgets.

What’s the difference between the Report view and the Dashboard?

The top-level Report view is fixed, read-only analytics (incoming volume, planned time, time by client). The Dashboard inside the CRM is yours to configure with custom widgets. Build charts in the Dashboard; consult the Report for the standard snapshots.

Where do AI-drafted replies show up?

In the Approvals view (it appears in the navigation when reply suggestions are enabled, with a badge for pending drafts). From there you Approve & send, Edit, or Discard each draft. Approved replies send through the card’s mailbox SMTP.

How do I add another mailbox?

Open My Mailboxes and click + Add mailbox. Provide a label and IMAP host / username / password; add SMTP credentials if you want to send from it. Choose team (shared) or private (only you), save, and hit Test. The sync picks it up within about a minute. See Email accounts.

What can each role do?

Admin — everything, including the Admin Panel. Accounting — all CRM records plus the Money views. Sales — companies, contacts, projects, quotes, orders and products. Member — the board, calendar, and Companies / Contacts. See Users & roles.

How does someone get access to the Telegram bot?

They message the bot first; then an admin authorises their Chat ID under Admin → Chat & Telegram → Authorise a sender (enter the Chat ID and, to map them, their KanMail username, then click Add). Remove a row to revoke access. See Telegram access.

Where do I discuss a specific email with my team?

Open the card, go to its Work tab, and use the Discussion thread. Type a message and click Send (or Ctrl/Cmd + Enter). It stays attached to that card for your team.

I changed a setting and nothing happened — do I need to restart?

Feature flags (turning whole modules on / off) take effect only after the service restarts — use Restart app in Admin → System. Day-to-day changes — sender lists, Telegram authorisations, CalDAV mappings, send-policy grants, new mailboxes — apply live, no restart needed.

No matching answers. Try a different word.