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?
- Which templates are there?
- Which field types are there?
- Where do fields show?
- What are saved filters?
- How does Roadmap & Goals work?
- What is the Timeline view?
- Can I link work across projects?
- Who can change the fields?
- What do AI agents see?
- What is not in this round?
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?
| Template | Board | Columns | Fields |
|---|---|---|---|
| Scrum | Scrum | To Do → In Progress → In Review → Test Rejected → Done (+ Backlog) | no extra fields |
| Kanban | Kanban | as Scrum, without sprints | no extra fields |
| Delivery pipeline | pipeline | Testing / Passed per environment | no extra fields |
| Sales & Billing | Kanban | Draft → 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 desk | Kanban | New → Triage → In progress → Waiting (yellow, SLA paused) → Done | requester · category (Admin · Finance · IT · HR · Other) · urgency (Low · Normal · High · Urgent) · sla_due · channel (LINE · Email · Walk-in · Phone) |
| Budget planning | Kanban, list view by default | Proposed → Approved → Spending → Closed · Rejected (grey) | planned · actual · remaining (formula = planned − actual) · owner · quarter (Q1–Q4) · cost_center · vendor |
| Roadmap & Goals | Kanban, Timeline view by default | Idea → 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.
| Type | Value | Example |
|---|---|---|
text | up to 500 characters | quote_no, invoice_no |
number | a number | quantity |
money | a number with 2 decimals in the project's currency | amount, planned, actual |
date | YYYY-MM-DD | signed_at, due_on, sla_due |
person | a member's user id (picked with the person picker) | owner, requester |
select | one of the defined options | payment_terms, urgency, quarter |
url | an http(s) link up to 2,000 characters | a link to an external document |
customer | text plus auto-suggestions from names already used in the project (no customer table yet) | customer, vendor |
formula | computed 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 stored | remaining = planned − actual, score |
rollup | computed 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 stored | progress, 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)
Can I link work across projects?
Yes. An issue's links (relates, blocks / blocked by, duplicates, clones) accept the key of an issue in another project of the same company, and the new link type delivers / delivered_by points at a release of another or the same project with an id of the form KEY/R-n. This works in every template, not only Roadmap — a deal in Sales & Billing links to the development team's release, and a Kanban issue links to a goal in the Roadmap.
- The “Link to…” button in every drawer: pick a project (only those you can open, the current one first) → type to search that project's issues or releases (releases are tagged) → pick the link type (relates by default; blocks / blocked by / duplicates / clones for issues; delivers for a release). Typing a key yourself still works
- Whoever creates the link must be able to open both projects (member, team or company admin), otherwise the link is refused; the inverse link is written on the target as before (a delivers link to a release has no inverse); never across companies
- The Linked section of the drawer groups targets by project and shows them live: an issue with key, title and status chip, a release with its name, state and a small progress bar; a target you cannot open shows its key and a lock, “no access”
- Delete the target project or release and the link stays as a key only — it is not removed for you and nothing breaks; rollup fields skip targets that cannot be read
- The list view and search_issues filter “issues linked to KEY-n” with linked_to
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
---
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...
---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 goalWhat 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