Skip to content
Queue, board, calendar

Tasks that don't slip through the cracks

Every deal, ticket, lead and account carries its own work. Three views of the same queue, on the same records as the rest of your CRM, with no second tool to keep in sync.

Unlimited tasks and unlimited users. MIT licensed, self-host it anywhere.

A board that tells you the lane is full

Columns you name, cards you drag, and a limit per column that the header actually counts against.

  • Limits Counted, and said out loud A column at six cards against a limit of four reads as six of four, and the lane says how far over it is. The board keeps a running total of the columns above their limit.
  • Moves Saved, or snapped back The card follows the cursor and the counts update at once, then the move is persisted. If the server refuses it, the board reloads and the card returns to where it was, so it never claims a move that did not happen.
  • Done A timestamp, not a column A card dragged into Done is not finished until it is marked finished. It stays open work, and stays overdue if it is late, so the board and the API never disagree about what is left.
[ APP.BOTTLECRM.IO/TASKS/BOARD ]
End to end

Capture, assign, work, close

Four moves, and none of them need a second application open.

Capture

A title, notes, a due date, a priority, and the one record it belongs to. Custom fields your org defined show up on the form alongside the built-in ones.

  • Pin to a deal, ticket, lead or account
  • Low, medium or high
  • Due on a date
  • Your own fields

Assign

Hand it to one person or several. Everyone named gets an email saying it is theirs, sent by a background worker that is tenant-aware.

  • One or many assignees
  • Email on assignment
  • Reassign at any time
  • Tags for cross-cutting work

Work

It lands in their queue, which opens on unfinished work. It sits on the month calendar on its due date, and it surfaces on the dashboard once it is due today or late.

  • Queue hides completed by default
  • Month calendar
  • Overdue and due-today on the dashboard
  • Comments and attachments

Close

Tick it from the row itself. The tick is a save, not a local flourish: the row shows it is thinking, and takes whatever the server says back.

  • Tick from the list
  • Never shows saved when it is not
  • Reopen by ticking again
  • Full audit trail
Read this before you adopt

No recurrence, and nothing that nags

This page used to list both as headline features. Neither has ever existed for tasks, and knowing that up front is worth more than finding out in week two.

Tasks do not recur

There is no repeat rule on a task: no daily, no weekly, no every-N-months. Completing one creates nothing after it. Recurring schedules exist in this product, on invoices, and an earlier version of this page borrowed that word for tasks. If a repeating checklist is central to your work, weigh this before you adopt.

Nothing chases a due date for you

No reminder emails, no mobile push, no daily digest. The one message tasks send is an email when a task is assigned to you. What replaces the nudge is visibility: the queue opens on unfinished work, overdue days are counted on the row, and the dashboard lists what is overdue or due today.

One at a time, and no CSV

There is no multi-select on the task list, so no bulk reassign, bulk status change or bulk delete. There is also no CSV import or export for tasks in either direction. CSV import does exist here for contacts, leads and tickets, which is why this page used to claim it.

Time tracking belongs to tickets

Logged hours, billable rates and the timesheet hang off a ticket, not a task. If you need hours against this work, do it on the ticket the task is pinned to. There is no timer on a task and no hours rollup by task.

What is built

Three views, one queue, your own fields

A board that counts against its limit

Columns you name, cards you drag. Each column can carry a work-in-progress limit, and the header shows the count against it rather than a bare number, so a lane at 6 of 4 does not look like a lane at 2 of 5.

  • Columns you define
  • Drag to move
  • WIP limit shown per column
  • Lanes over the limit are flagged

A queue that opens on what is left

The list starts on unfinished work, because a to-do list that leads with history is not a to-do list. Completed tasks are one filter away, and the totals still count them.

  • Open by default
  • Show completed on request
  • Totals cover both
  • Overdue counted in days

A month view for what is coming

Dated tasks sit on the day they are due. Seven columns on a laptop, and an agenda of only the days that carry work on a phone, from the same data, so the two can never disagree.

  • One month at a time
  • Agenda layout on a phone
  • Overdue colours over priority
  • Read-only by design

Pinned to the record it came from

A task belongs to exactly one deal, ticket, lead or account, and the model enforces that rather than trusting the form. From the task you reach the record, and from the record you see its tasks.

  • Four kinds of parent
  • Exactly one, enforced server-side
  • Links both directions
  • Comments and attachments per task

Filters that reach your own fields

Status, priority, assignee, due-date range, created range, tags, and the parent record. Custom fields are filterable too, so "billable and due this week" is a URL rather than a spreadsheet.

  • Several statuses at once
  • Due and created ranges
  • Filter on a custom field
  • Shareable as a link

Two rules about who can touch it

Admins, the person who created it and anyone it is assigned to can open it and change it. Deleting is narrower: admins and the creator only. Being handed a task is a reason to do it, not a reason to erase it.

  • Open and edit: admin, creator, assignee
  • Delete: admin, creator
  • The list obeys the same rule
  • Enforced in the API, not the UI
Questions

The ones that decide it

Check for yourself

The task model, the board and the permission rules are all in the open repository.

Do tasks repeat, and will anything remind me?

No to both, and they are the two things people most often assume. A task has no repeat rule, so completing one does not schedule the next, and nothing emails or pushes you before a due date. The only automatic message is the email sent when a task is assigned to you. What the product offers instead is that unfinished work is hard to miss: the queue opens on it, the row counts how many days late it is, the calendar shows the month ahead, and the dashboard surfaces what is overdue or due today.

What does a WIP limit on the board actually do?

It counts and it warns. A column with a limit shows the count against it, a lane past its limit says how far past, and the board header keeps a running count of how many columns are over. It does not block the drop: you can move a card into a full column and the server will accept it. That is deliberate on a shared board, where the useful behaviour is telling the team the lane is full rather than stopping one person mid-drag.

Who can see a task, and who can delete it?

Anyone who is an org admin, created the task, or is assigned to it can open it, edit it and comment on it. Deleting is narrower: admins and the creator. The list applies exactly the same rule as the detail page, which matters more than it sounds. When the two rules drift apart you get a queue full of rows that answer 403 when you click them.

What can the mobile app do with tasks?

Everything the web list does and one thing it does not. On a phone you can browse and search the queue, filter by assignee, status and priority, switch to a calendar, create and edit a task, tick it done and delete it. Custom fields are on the mobile form and, today, not on the web one. The board is web-only.

Put the work next to the customer

Unlimited tasks, unlimited people, on your own database. Host it yourself, or let MicroPyramid run it.

MIT licensed No per-seat fee 100% data ownership