Built-in • Cross-record • 100% Free

Tasks that don't slip through the cracks

Every record in BottleCRM — leads, deals, tickets, invoices — can carry its own tasks. Assign, prioritise, recur, and remind. Hit due dates with reliable Celery-backed notifications, on web and a native mobile app.

Linked to anything
Pin tasks to any record, or stand alone
Recurrence built-in
Daily, weekly, monthly, every N months
Reliable reminders
Email + push + in-app, tenant-aware
How it works

From capture to close.

Four moves that fit any team's workflow — small enough to never get in your way.

1

Capture

Create tasks standalone or pinned to a lead, account, opportunity, ticket, or invoice

  • Quick add from anywhere
  • Linked to any record
  • Title + description + custom fields
2

Assign

Route to the right teammate with priority and due date in one click

  • Single or multi-assignee
  • Priority: low → urgent
  • Due date with optional time
3

Remind

Email and push reminders so nothing falls through the cracks

  • Multiple reminders per task
  • Relative offsets
  • Mobile push via FCM
4

Close

Mark done from the kanban, list, mobile app, or API — activity timeline updates everywhere

  • Kanban drag-drop
  • Bulk status change
  • Full audit trail
Capabilities

Everything tasks should do, in your CRM.

Powerful filters & views

List view filters by status, assignee, due range, priority, tags, and any filterable custom field. Save views for the queries you run every morning.

  • Filter by any field
  • Saved views
  • Per-user defaults
  • Search across title + description

Kanban by status

Visual /tasks/kanban groups tasks by status. Drag a card to change status — server re-validates the transition and updates the activity timeline.

  • Drag-drop status
  • WIP limits per column
  • Color-coded priority
  • Per-card preview

Recurrence

Daily, weekly on chosen days, monthly on day N, every N months. Completing a recurring task auto-generates the next instance via a Celery worker.

  • Daily / weekly / monthly / N-monthly
  • Day-of-week & day-of-month anchors
  • End date or open-ended
  • Skips weekends optionally

Smart reminders

Per-task reminders dispatched at relative offsets. Choose email, in-app, or mobile push — or all three.

  • "1 day before due" / "at due time"
  • Multiple reminders per task
  • Email + push + in-app
  • Push via Firebase Cloud Messaging

Multi-assignee & teams

Assign to multiple people, a whole team, or rotate among on-call shifts. Per-user views always show "what's mine."

  • Single or multi-assignee
  • Team assignment
  • "My day" dashboard widget
  • Per-assignee email digests

Custom fields

Add the columns your org needs — estimated hours, billable flag, project code, sprint — without touching code.

  • Per-org schema
  • Text / number / date / dropdown / checkbox
  • Filterable in list view
  • Available in API + mobile

Plays well with everything else.

Tasks are part of the same data plane as every other CRM module — same API, same auth, same custom-field schema.

Native mobile
Tasks are first-class in the Flutter app
Due date sync
iCal feed per user for Google / Apple Calendar
Tags & labels
Cross-cut tasks across projects
Webhooks
task.created, task.completed, task.overdue
Timesheet
Aggregate hours by user, week, project
CSV import / export
Migrate from Asana, Todoist, JIRA

Questions, answered.

Can tasks be linked to multiple records?

Each task has one primary record link (lead, account, opportunity, ticket, or invoice). Use tags if you need to cross-cut tasks across multiple records.

How does recurrence handle weekends and holidays?

Recurring tasks have an optional "skip weekends" flag. A holiday calendar can be configured at the org level; if enabled, the next occurrence shifts forward to the next business day.

Are reminders sent reliably?

Yes — reminders are dispatched by a Celery worker on a periodic beat schedule. The worker is tenant-aware (per the row-level security setup) so reminders only fire for tasks the assignee can still access.

Can I bulk-update many tasks at once?

The list view supports multi-select for reassign, change status, change priority, add tags, delete, and CSV export. Each operation is an atomic API call that respects role-based permissions.

Stop juggling, start shipping.

Free, self-hosted, open source. Spin it up in five minutes with Docker.