@model PowderCoating.Application.DTOs.Company.CompanySettingsDto @{ ViewData["Title"] = "Company Settings"; ViewData["PageIcon"] = "bi-building"; } @section Styles { }
No logo uploaded
}Configure your operating costs for accurate job quoting calculations.
Used for job costing only — not shown to customers. Leave blank to use the Standard Labor Rate.
| Role | Cost Rate / hr | Fallback if blank |
|---|---|---|
| Loading... | ||
Percentage added to the calculated item price based on part intricacy. Applied to calculated items only (not catalog, generic, or labor items).
Tell the AI about your shop so it produces better estimates for your specific work and pricing style.
Layer 1 — Pricing config: Your operating costs (labor, equipment, markup) are always injected automatically.
Layer 2 — Your shop profile: The description you write here is added to every AI analysis, guiding estimates toward your typical work.
Layer 3 — Automatic learning: Each time your team accepts an AI estimate without changing it, that item is silently added as a calibration example. The AI improves on its own the more you use it.
Tell the quoting engine what size shop you're running. This gives the AI context about your capacity when generating estimates and is used as a fallback when specific equipment rates aren't configured.
Define each blast rig your shop uses (cabinet, pressure pot, blast room, etc.). When quoting, workers pick the rig they'll actually use so time estimates are accurate. Mark one as the Default to pre-select it in AI Photo Quotes.
| Name | Type | CFM | Derived Rate | Status | Actions |
|---|
Add each oven with its rate and capacity. The Oven Scheduler uses capacity and cycle time to plan batches; quotes use the per-hour rate. If no specific oven is selected on a quote, the Default Oven Rate from Operating Costs is used.
| Label | Rate/hr | Capacity (sqft) | Order | Status | Actions |
|---|
Default values used when creating new records.
Control which events trigger email notifications and alert thresholds.
@if (ViewBag.SmsEnabled == true) {When enabled, customers who have given SMS consent will receive text alerts for job status changes (e.g. ready for pickup).
7,14,30).Customize dropdown values and workflow statuses for your company
| Display Name | Status Code | Color | Category | Flags | Usage | Actions | |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
| Display Name | Priority Code | Color | Usage | Actions | |
|---|---|---|---|---|---|
| Loading... | |||||
| Display Name | Status Code | Color | Business Flags | Usage | Actions | |
|---|---|---|---|---|---|---|
| Loading... | ||||||
| Display Name | Type Code | Color | Requires Job | Active | Usage | Actions |
|---|---|---|---|---|---|---|
|
Loading...
Loading appointment types...
|
||||||
| Display Name | Category Code | Description | Usage | Actions | |
|---|---|---|---|---|---|
| Loading... | |||||
| Service Name | Description | Status | Actions | |
|---|---|---|---|---|
| Loading... | ||||
Customise how your printable and emailed quote PDFs look. After saving, open any quote and click Download PDF to preview the result.
Customise how your printable and emailed invoice PDFs look. After saving, open any invoice and click Download PDF to preview the result.
Customise the blank work order form your shop prints for walk-in or drop-off customers. After saving, click Print Blank Work Order from the Jobs page to preview.
A platform administrator must set Stripe:ConnectClientId in
appsettings.json before companies can connect their Stripe accounts.
The value starts with ca_ and can be found in your
Stripe Dashboard → Connect → Settings.
Connect your Stripe account to start accepting online payments from customers.
When a customer completes the intake form, what should be created in the system?
A draft quote is created and reviewed by staff before work begins. Best for shops that price after seeing the parts.
A job is created immediately on submission. Best for shops that price on the spot and want the work order ready right away.