BoardMark
Docs

Workflow templates & custom fields

Pick a template on Create project — Scrum, Kanban, Delivery pipeline, Sales & Billing, Service desk, Budget planning, Roadmap & Goals — fields, Timeline, cross-project links.

Why templates instead of more board types?

There are still three board types — Scrum, Kanban and Delivery pipeline — because they differ in real rules (sprints, WIP limits, a test gate per environment). A template is a ready-made set on one of those boards: the base board, columns with their meanings, a set of fields, the default view (columns or list) and the issue types it uses. Every plan can pick every template: a template is our preset, not a customisation.

  • Create project asks for a template instead of a board type: each card shows a thumbnail of the columns, the main fields and a Preview button
  • Group Software delivery: Scrum · Kanban · Delivery pipeline (the three boards as before, nothing changes) and group Business: Sales & Billing · Service desk · Budget planning · Roadmap & Goals
  • Start from still offers: empty / import from Jira / a transfer key from another company — a Jira import works with the Software delivery group only
  • Existing projects do not change, and there is no switching a project's template later yet; project.md records where it came from in template: (read-only)
  • Business templates have no Backlog column and no Backlog tab

Which templates are there?

TemplateBoardColumnsFields
ScrumScrumTo Do → In Progress → In Review → Test Rejected → Done (+ Backlog)no extra fields
KanbanKanbanas Scrum, without sprintsno extra fields
Delivery pipelinepipelineTesting / Passed per environmentno extra fields
Sales & BillingKanbanDraft → Sent → Signed → In delivery → Billing → Closed · Lost (grey)deal: customer · quote_no · amount · sent_at · signed_at · valid_until · payment_terms · owner — installment: amount · bill_on · invoiced_at · invoice_no · due_on · paid_at · paid_amount
Service deskKanbanNew → Triage → In progress → Waiting (yellow, SLA paused) → Donerequester · category (Admin · Finance · IT · HR · Other) · urgency (Low · Normal · High · Urgent) · sla_due · channel (LINE · Email · Walk-in · Phone)
Budget planningKanban, list view by defaultProposed → Approved → Spending → Closed · Rejected (grey)planned · actual · remaining (formula = planned − actual) · owner · quarter (Q1–Q4) · cost_center · vendor
Roadmap & GoalsKanban, Timeline view by defaultIdea → Planned → In progress → Done · Dropped (grey, not a success)quarter (Q1–Q4) · start · end · owner · reach · impact · confidence · effort · score (RICE formula) · progress (rollup over links) · linked (rollup count)
  • Sales & Billing: a quotation or contract is a deal card, its installments live inside the card, flags are worked out from dates and reminders go out when a bill or payment is due — see the Sales & Billing guide
  • Service desk: take admin, finance, IT or HR requests on behalf of the requester; sla_due is filled in from the urgency when the request is created (Urgent 1 day · High 3 · Normal 7 · Low 14, adjustable in Project settings); flags SLA soon (≤ 1 day) and Past SLA by N days only while the request is not Waiting or Done; one reminder each to the assignee and the requester; saved filters Past SLA · Mine · Waiting · New today
  • Budget planning: one budget line per card; remaining is computed, never typed; flags Over budget (red, actual > planned) and ≥ 80 % spent (yellow); the list view has a totals row Σ planned / Σ actual / Σ remaining for the filtered rows and can group by quarter; over budget rings the owner's bell once; saved filters Over budget · ≥ 80 % spent · Not yet approved
  • Roadmap & Goals: one goal per card (key results as optional subtasks); score it with RICE, link it to the issues or releases of other projects, and its progress and the On track / At risk / Off track flags are worked out for you; see it on a Timeline — read the Roadmap & Goals and Timeline sections below
  • Money is stored as a number with 2 decimals in the project's currency (THB by default); dates are YYYY-MM-DD

Which field types are there?

Custom fields are defined in project.md (fields:): each has an id that never changes, a name, a type, the issue types it applies to (types), whether it is required, its options and a short help text. Values live in the issue's frontmatter under fields:, keyed by id.

TypeValueExample
textup to 500 charactersquote_no, invoice_no
numbera numberquantity
moneya number with 2 decimals in the project's currencyamount, planned, actual
dateYYYY-MM-DDsigned_at, due_on, sla_due
persona member's user id (picked with the person picker)owner, requester
selectone of the defined optionspayment_terms, urgency, quarter
urlan http(s) link up to 2,000 charactersa link to an external document
customertext plus auto-suggestions from names already used in the project (no customer table yet)customer, vendor
formulacomputed from money/number fields of the same issue: a − b, a + b, a / b, or RICE (reach × impact × confidence ÷ effort, 1 decimal; empty when a value is missing or effort = 0); read-only, never storedremaining = planned − actual, score
rollupcomputed from the linked issues or releases (from: links with the chosen link types, or children = subtasks): progress (% done) · count · sum · min_date · max_date of a target field; one level deep; read-only, never storedprogress, linked, delivery_progress
  • A field with types applies to those issue types only — bill_on, for example, belongs to the installments (subtasks) of Sales & Billing
  • A required field has to be filled in when an issue of a matching type is created
  • A value of the wrong type, a field that is not defined, or a write to a formula or rollup field is refused everywhere: in the web app, over MCP and when writing the .md file directly
  • Rollup fields a template brings work on every plan; adding or editing a rollup yourself in Project settings → Fields is Premium, like any other field

Where do fields show?

  • In the issue drawer the fields form their own group above the description; each one saves as soon as it changes, like the standard fields
  • A board card shows the fields the template marks “on card”, at most 2 (customer and amount on a deal, for example), plus the flags worked out from dates
  • The list view can add field columns, sort by a field and filter by a field — date: range / today / this week / overdue; select and person: pick values; money and number: ≥ and ≤
  • Templates with money show a totals row under the filtered rows

What are saved filters?

A saved filter is a named set of conditions shared with the whole project and shown as a chip with a count in the list view. Business templates come with theirs (Overdue · Bill due · Awaiting signature, for example). Project admins and company admins save a new one from the Filters popover, rename or delete it on every plan; everyone uses them.

How does Roadmap & Goals work?

Roadmap & Goals answers “what do we intend to do this quarter, how far is it, and which goals are late?”. One goal is one card on a Kanban board with the columns Idea → Planned → In progress → Done and Dropped (grey, not counted as a success); key results can be subtasks of the goal but do not have to be. A goal's progress is never typed in — it comes from the issues or releases linked to it in other projects (or the same one), and the On track / At risk / Off track flags are worked out from the dates and that progress every time the goal is read.

  • Fields: quarter (Q1–Q4, on the card) · start and end (required; they draw the Timeline) · owner · reach · impact · confidence · effort (numbers 1–10; confidence may be 0–1) · score · progress · linked
  • score is the live RICE score: reach × impact × confidence ÷ effort rounded to 1 decimal, shown on the card and highlighted in the goal drawer; empty until all four are filled in or when effort = 0
  • progress is a rollup over the targets linked with relates, blocks or delivers: an issue in a done column counts 100 %, any other 0 %, a release counts the % of its issues past the last gate (state shipped = 100 %), all weighted equally; linked is the number of linked targets
  • Flags (only for goals that are not done and have both start and end): Off track (off_track) = past end with progress < 100 · At risk (at_risk) = elapsed % − progress % > 25 and end not reached · On track (on_track) = everything else; Off track rings the owner's bell once
  • Saved filters: Off track · At risk · This quarter (the current quarter on the Bangkok calendar) · Mine
  • The goal drawer: the fields group (quarter, start, end, owner), the RICE group with the live score, the rollup stats (progress %, elapsed %, flag), a progress bar and a Linked section grouped by project

What is the Timeline view?

Timeline is the third view next to Columns | List. It shows when the project has timeline: { start, end, progress } in project.md — the Roadmap & Goals template sets it and opens with it; any other template with two date fields can turn it on in Project settings → Fields (Premium).

  • Three zoom levels: quarter · month · week; headers show quarters and months (Buddhist year in Thai, Gregorian in English), a today line and a Today button that scrolls back; the zoom is remembered per project in your browser
  • Rows are grouped by status column and fold like the list view (no Backlog); one lane per goal; the bar runs start → end and is coloured by flag: on track, at risk, off track, done (lime) and Dropped (grey), with the progress filled inside and the % after the bar
  • Drag an edge to change start or end, drag the body to move the whole range — saved at once on drop with an Undo button in the toast; click a bar to open the drawer
  • Goals without start or end sit in a “Not scheduled yet” list under the table — click one to open the drawer and set the dates
  • Below 640px the list view is used instead, and boards with ≥ 150 rows skip the layout animation (like the heavy board mode)

Who can change the fields?

  • The fields a template brings work on every plan, with their flags, saved filters and reminders
  • Adding, renaming, changing the options of or deleting a field beyond the template is Premium and uses the same editor as board columns: Project settings → Fields, edit a draft, then Save; if someone saved first you are asked to reload
  • Deleting a field that holds values tells you how many issues are affected, then removes the key from the .md files in the background with a progress bar
  • A field's id never changes, even when its name does
  • AI agents cannot change field definitions (web app only) and get 403 plan_required when the company is not on Premium

What do AI agents see?

  • get_project returns template, fields (definitions with types and options) and saved_filters; get_docs_context explains the template's fields and columns so the agent reads them before it starts
  • create_issue and update_issue take fields (merged key by key; null clears a value) with the same checks as the web app: 400 unknown_field, invalid_field_value or formula_readonly
  • search_issues filters by fields ({ id, op: eq · lt · gt · between · empty, value }) and by flag (the template's flags) and sorts by a field; results carry computed (formula values) and flags
  • write_file on an issue file goes through the same checks
  • link_issues takes the key of another project in the same company, and type delivers with id KEY/R-n for a release (403 link_target_forbidden when the token cannot open the target project, 404 release_not_found when there is no such release); get_issue returns linked[] — the live targets (key, title, status or a release's state + progress; readable: false when you have no access) — and computed (score, progress, linked); search_issues takes linked_to=KEY-n and the flags on_track / at_risk / off_track; writing a rollup field → 400 formula_readonly; an invalid rollup definition → 422 bad_rollup; get_docs_context adds a “linked projects” line when the project links across projects
  • No new tools — everything works through the existing ones
Example: a deal's frontmatter in Sales & Billing
---
id: SALE-12
type: task                 # a deal
status: signed
fields:
  customer: Siam Logistics Co., Ltd.
  quote_no: Q-2026-031
  amount: 150000.00
  signed_at: 2026-10-03
  payment_terms: 50-50
  owner: usr_01H...
---
Example: a goal in Roadmap & Goals
search_issues { project: "RM", flag: "off_track" }                  # which Q4 goals are off track?
get_issue     { key: "RM-7" }                                        # → computed.score, computed.progress, linked[]
link_issues   { key: "RM-7", type: "delivers", id: "NW/R-3" }        # goal delivered by release R-3 of project NW
link_issues   { key: "RM-7", type: "relates", id: "APP-120" }        # an issue of another project (same company)
search_issues { project: "APP", linked_to: "RM-7" }                  # everything linked to the goal

What is not in this round?

  • Changing an existing project's template
  • A central customer table — the customer field suggests names already used in the project only
  • Links across companies, nested rollups (a target's own rollup value is not pulled further) and dependency arrows on the Timeline
  • A “Create project / release from this deal” button in Sales & Billing