Skip to content

Production Settings

The Production Settings tab is where the structural lookup data that drives the shop floor lives — Job Statuses, Job Categories, and Order Sources. Get these right and the rest of the system reads like a well-organized workshop; get them wrong and your dashboards become noise.

Open the tab from App Settings → Production Settings.

App Settings — Production Settings


  1. What this tab is for
  2. Job Statuses
  3. The completion status
  4. Job Categories
  5. Order Sources
  6. System vs custom items
  7. Reordering
  8. Where these values are used
  9. Tips and best practices

Three lookup lists, each on its own card:

ListWhat it captures
Job StatusesThe workflow states jobs move through — Planning, In Production, On Hold, Completed, Archive, etc. Colored.
Job CategoriesA free-form classification — typical values are product lines, services, or work types.
Order SourcesWhere an order came from — Manual, Shopify, WooCommerce, API, plus any custom inbound channels you define. Colored, with API slugs.

Each list has the same UX shape: an inline add form, a list with edit / delete actions, drag handles for user-defined rows, and a confirmation dialog before delete.


The most important list on the page. Each status row has:

  • Name — the label users see (Planning, In Production, Completed, etc.).
  • Color — the hex color used as a swatch on the Production page, the Jobs table left-edge bar, the status filter, and elsewhere.

System statuses (typically Archive, the special “this job is done and put away” state) are locked and rendered separately at the bottom of the list. You can’t rename, recolor, or reorder them — they’re tied to internal hide-archived logic that depends on knowing where they are.

A small dropdown above the list lets you flag which status is the “completion” status — the one the system auto-applies to a job when its last workstation step finishes.

  • Pick a status from the dropdown to mark it as the completion status.
  • The selected status gets a small badge in the list.
  • When a job’s last task hits its planned quantity, the system automatically transitions the job to this status.

Why this matters. Without a completion status set, jobs that finish on the floor stay flagged In Production forever in the dashboard. Setting it once means jobs auto-close cleanly, the Hide Completed toggle on Production behaves correctly, and the job_completed webhook fires reliably.


A simple list with just a Name for each entry. Same add / edit / delete UX as the other sections.

Categories show up:

Common categories: Furniture, Cabinetry, Repair, Custom, Sample, Internal. Keep them broad — categories are useful for grouping, not for fine-grained tagging.


Where each order came from. Each row has:

  • Name — display name (Shopify, Phone, Trade show, Walk-in…).
  • Color — for visual identity.
  • API slug — a stable identifier used by integrations, webhook scoping, and CSV imports.

System sources (manual, shopify, woocommerce, prestashop, magento, opencart, csv, api) are built into the product, locked, and shown with a lock icon. Their API slugs can’t be changed because external systems may reference them.

You can also add custom sources — give your custom inbound channel a name, a color, and a unique slug. They sit alongside the system ones in dropdowns and filters.

Where the API slug matters. Webhook subscriptions (Webhooks) can be filtered by source slug — set a webhook to fire only on shopify source orders, for example. The CSV importer matches against slugs to attach jobs to the right order. Pick something short, lowercase, alphanumeric, and stable.


Both Job Statuses and Order Sources mix system and custom entries:

  • System items are locked — rendered greyed out with a lock icon. They exist because some internal logic depends on a known item being available. You can’t rename or delete them.
  • Custom items can be edited, recolored, reordered, and deleted freely.

For Job Statuses specifically, system statuses always sort to the bottom regardless of where you drag others — that’s intentional and not a bug.


Custom rows in Job Statuses and Order Sources can be drag-reordered:

  1. Hover the row — a grip handle appears on the left.
  2. Click-and-drag to a new position.
  3. The new order is saved instantly.

Reordering controls:

  • The order options appear in dropdown selectors (Status / Source pickers).
  • The order custom Kanban Views display in the picker.
  • The order columns or filters render in.

Job Categories don’t have drag-reordering — they sort alphabetically by name.


ListWhere it shows up
Job StatusesJob panel (current status), Jobs list (filter + colored left edge), Production page (status filter, completion auto-transition). Drives the Hide Archived toggle.
Job CategoriesJob panel (dropdown), Jobs list (filter / column), Production page filter.
Order SourcesOrders panel (Source dropdown), Orders list (filter), CSV importer (Jobs CSV import), Webhooks source scoping.

Changes here take effect immediately throughout the system.


  • Set a completion status. Without it, finished jobs aren’t auto-archived and your dashboards get noisier and noisier. Pick the status you actually want completed jobs to land in (most shops create a Completed status or use the system Archive).
  • Color statuses meaningfully. Green = done / good, blue = in flight, amber = waiting / blocked, red = problem, grey = inactive. The colors appear on every job row and every kanban card.
  • Keep statuses focused on the lifecycle, not on attributes. In Production, On Hold, Completed are good. VIP Customer, Wood Product, Rush are not — those are categories or custom fields.
  • Lowercase, hyphen-free slugs for Order Sources. phone-orders works; Phone Orders does not. Slugs are the integration handle.
  • Don’t fight system items. They exist because internal logic relies on them. Add your own alongside; never try to work around the locks.
  • Categories should be broad. 5–8 categories is plenty. If you find yourself with 30, you probably want a custom field on the Job Template instead.
  • Pair custom Order Sources with Webhooks. A webhook scoped to your source can route those specific orders to the right Slack channel or ERP entry.