---
title: "Custom dashboards, CRM and operations systems"
description: "We move work that runs on Excel, WhatsApp and paper into a single dashboard. Orders, inventory, service, customers and staff, with no per-user fees."
url: https://oxarus.com/en/hub/custom-systems
key: hub-custom-systems
route: /hub/custom-systems
unit: hub
locale: en
status: live
alternates:
  tr: https://oxarus.com/tr/hub/custom-systems
  en: https://oxarus.com/en/hub/custom-systems
documents:
  json: https://oxarus.com/machine/en/hub/custom-systems.json
  jsonld: https://oxarus.com/machine/en/hub/custom-systems.jsonld
  txt: https://oxarus.com/machine/en/hub/custom-systems.txt
schema: oxarus.machine/2.0
---

# Custom dashboards, CRM and operations systems

> We move work that runs on Excel, WhatsApp and paper into a single dashboard. Orders, inventory, service, customers and staff, with no per-user fees.

Breadcrumbs: [Oxarus home](https://oxarus.com/en) › [Oxarus Hub](https://oxarus.com/en/hub) › [Custom Systems](https://oxarus.com/en/hub/custom-systems)

## Notices

- Interface data marked as representative is illustrative; it is not a real client, result or measurement.

## Sections

- [all on one screen.](#hero)
- [where do we start?](#audiences)
- [everyone sees their own work.](#roles)
- [one record from quote to invoice.](#approvals)
- [every job has an owner and a deadline.](#service)
- [rules take over repeated work.](#automation)
- [the numbers are ready each morning.](#reports)
- [a system that fits you.](#compare)
- [years of data, nothing lost.](#migration)
- [in use in four steps.](#process)
- [your questions.](#faq)
- [let's untangle the mess.](#cta)

<a id="hero"></a>
<!-- section:hero component:OpsHero kind:hero sources:messages:customSystems.hero -->

## all on one screen.

_HUB · CUSTOM SYSTEMS_

No more orders stuck in Excel, requests buried in WhatsApp and notes on paper. We build a dashboard around the way you already work and automate the steps you repeat.

<https://oxarus.com/en/hub/custom-systems>

- [Get in touch](https://oxarus.com/en/hub/custom-systems#cta-heading) → `open_page(path="/hub/custom-systems", anchor="cta-heading")`
- [What we build](https://oxarus.com/en/hub/custom-systems#roles-heading) → `open_page(path="/hub/custom-systems", anchor="roles-heading")`

- No per-user fees
- Your Excel data comes with you
- Works on mobile too

1. Scattered
2. One dashboard
3. Automatic

<!-- demo:start messages:customSystems.hero.demo -->
_Representative interface data_ · Illustrative dashboard interface.

- **tabTitle:** Dashboard · Northfield Supply

- **excelName:** order\_tracking\_FINAL\_v3.xlsx

|  |  |  |
| --- | --- | --- |
| Customer | Product | Status |
| Yıldız İnşaat | Plaster 40 bags | ?? |
| Ece Mimarlık | Tiles 60 m² | shipped?? |
| Demir Usta | Paint 12 buckets | CALL |

- **whatsappName:** Warehouse · Hakan

- Did Yıldız's plaster go out?
- Think we're down to 20

- Call Ece back!
- Invoice not sent yet?

- **mailSubject:** RE: RE: RE: stock status
- **mailFrom:** accounting@

- **company:** Northfield Supply

Dashboard · Orders · Inventory · Customers · Service · Reports

- **greeting:** Good morning, Murat
- **date:** Monday, September 14

- **Orders today**
  - **value:** 24
  - **delta:** +6
- **Awaiting approval**
  - **value:** 3
- **Low stock**
  - **value:** 5
- **Open service jobs**
  - **value:** 7
  - **delta:** -2

**Recent orders**
- 0
  - **no:** #2041
  - **customer:** Yıldız İnşaat
  - **item:** Plaster · 40 bags
  - **amount:** ₺18,400
  - **status:** New
- 1
  - **no:** #2040
  - **customer:** Ece Mimarlık
  - **item:** Tiles · 60 m²
  - **amount:** ₺42,900
  - **status:** In transit
- 2
  - **no:** #2039
  - **customer:** Demir Usta
  - **item:** Paint · 12 buckets
  - **amount:** ₺9,360
  - **status:** Preparing
- 3
  - **no:** #2038
  - **customer:** Kaya Dekorasyon
  - **item:** Parquet · 85 m²
  - **amount:** ₺61,200
  - **status:** Delivered

- **new:** New
- **transit:** In transit
- **preparing:** Preparing
- **delivered:** Delivered

**This week**

- Mo
- Tu
- We
- Th
- Fr
- Sa

62 · 78 · 54 · 88 · 96 · 40

**Automation · New order**

1. **Order received** · _Web form · Yıldız İnşaat_
2. **Stock reserved** · _Plaster · 40 bags, 180 left_
3. **Warehouse work order** · _Added to Hakan's list_
4. **Invoice draft** · _Sent to Logo_
5. **SMS to customer** · _“Your order is being prepared”_

- **toast:** Work order #2041 sent to the warehouse
- **auto:** Automatic
- **importing:** Importing

- 0
  - **no:** #2037
  - **customer:** Kaya Dekorasyon
  - **item:** Skirting · 40 m
  - **amount:** ₺6,800
  - **status:** Delivered
- 1
  - **no:** #2036
  - **customer:** Yıldız İnşaat
  - **item:** Plasterboard · 120 sheets
  - **amount:** ₺27,600
  - **status:** In transit

- **revenueLabel:** Revenue

<!-- demo:end -->

<a id="audiences"></a>
<!-- section:audiences component:ChaosToRecords kind:audiences anchor:#audiences-heading sources:messages:customSystems.audiences -->

## where do we start?

_WHAT'S SCATTERED_

In most companies, not everything is a mess at once; one process slows down the rest. We start where you lose the most time.

<https://oxarus.com/en/hub/custom-systems#audiences-heading>

<!-- demo:start messages:customSystems.audiences.demo -->
_Representative interface data_ · Representative

**From scattered notes to records**

> Representative

- **replay:** Play again
- **sourcesLabel:** Where it lives today
- **recordLabel:** In the dashboard
- **waiting:** Waiting

<!-- demo:end -->

- **One flow from order to shipment** · _Orders and inventory_
  “Orders go into Excel, stock lives in a separate file. The warehouse says it's there, the system says it isn't, and customers get the wrong promise.”
  The moment an order is entered, stock is reserved, the warehouse gets the job and the shipment is tracked. Nobody types the same thing twice.
  - Live stock with low-stock alerts
  - Warehouse and shipping screen
  - Bulk orders and price lists
  - Automatic sync to accounting
  - [See the order automation](https://oxarus.com/en/hub/custom-systems#automation-heading) → `open_page(path="/hub/custom-systems", anchor="automation-heading")`
  - _Representative interface data_ · Representative
    - **order\_tracking\_FINAL\_v3.xlsx**
      |  |  |  |
      | --- | --- | --- |
      | Customer | Product | Status |
      | Yıldız İnşaat | Plaster 40 bags | ?? |
      | Ece Mimarlık | Tiles 60 m² | shipped?? |
      | Demir Usta | Paint 12 buckets | CALL |
    - **Warehouse · Hakan**
      - Did Yıldız's plaster go out?
      - Think we're down to 20
  - _Representative interface data_ · Representative
    **Order #2041**
    - **status:** Preparing
    - **Customer:** Yıldız İnşaat
    - **Product:** Plaster · 40 bags
    - **Status:** Being prepared in the warehouse
    - **Stock left:** 180 bags
    - **Owner:** Hakan · Warehouse
- **Your field team, in the same dashboard** · _Service and field teams_
  “Fault reports come in by phone, the team waits for jobs in a WhatsApp group, and nobody knows what got closed until evening.”
  A ticket is opened, assigned to the right technician and closed from a phone with photos and a signature. The customer gets status updates by SMS.
  - Work orders and assignment
  - Mobile field screen
  - Photos, signatures and parts log
  - Service time reports
  - [See the service board](https://oxarus.com/en/hub/custom-systems#service-heading) → `open_page(path="/hub/custom-systems", anchor="service-heading")`
  - _Representative interface data_ · Representative
    - **Phone note**
      - Kaya Dekorasyon called
      - Living room parquet has lifted
      - Someone must go today!
    - **Field team**
      - Who's going to Kaya today?
      - Emre: I'm free after 14:00
      - Don't forget the photos
  - _Representative interface data_ · Representative
    **Service job #S-318**
    - **status:** Assigned
    - **Customer:** Kaya Dekorasyon
    - **Fault:** Lifted parquet · living room
    - **Due:** Today by 18:00
    - **Technician:** Emre · 14:00
    - **Closing:** With photos and a customer signature
- **Customer tracking built around you** · _Customer tracking_
  “Quotes get lost in email, nobody knows who called whom, and when a salesperson leaves, the customer knowledge leaves with them.”
  Every customer's quotes, calls, orders and balance on a single card. Reminders show up on their own.
  - Quote and approval flow
  - Call and reminder log
  - Sales pipeline and targets
  - No per-user fees
  - [See the quote flow](https://oxarus.com/en/hub/custom-systems#approvals-heading) → `open_page(path="/hub/custom-systems", anchor="approvals-heading")`
  - _Representative interface data_ · Representative
    - **Ece Mimarlık**
      - RE: RE: RE: tile quote
      - Could you resend last week's price?
      - We talked about 10% off.
    - **Note**
      - Call Ece back!
      - Who had the quote?
  - _Representative interface data_ · Representative
    **Customer card · Ece Mimarlık**
    - **status:** Open quote
    - **Quote:** T-1182 · Tiles 60 m²
    - **Discount:** 10% · with the manager for approval
    - **Account owner:** Selin · Sales
    - **Last contact:** Last week · asked for the price
    - **Reminder:** Tomorrow 10:00 · call Ece
- **HR in one place** · _Staff and leave_
  “Leave requests are on paper, overtime is calculated by hand, and advances and company equipment are tracked in separate spreadsheets.”
  Leave is requested from a phone, a manager approves it and the balance updates automatically. Overtime, advances and assigned equipment live in the same record.
  - Leave and approval flow
  - Overtime and shift tracking
  - Advances and equipment log
  - Payroll export
  - [See the role screens](https://oxarus.com/en/hub/custom-systems#roles-heading) → `open_page(path="/hub/custom-systems", anchor="roles-heading")`
  - _Representative interface data_ · Representative
    - **Leave form**
      - Name: Hakan Y.
      - September 22–24 · 3 days
      - Approved by: \_\_\_\_\_\_\_\_
    - **overtime\_sept\_FINAL.xlsx**
      |  |  |  |
      | --- | --- | --- |
      | Name | Overtime | Advance |
      | Hakan | 6 hours | ₺2,000 |
      | Emre | 4.5 hours | none |
  - _Representative interface data_ · Representative
    **Leave request · Hakan**
    - **status:** Approved
    - **Dates:** September 22–24 · 3 days
    - **Approved by:** Murat · from his phone
    - **Leave left:** Down from 11 days to 8
    - **September overtime:** 6 hours · goes to payroll
    - **Advance:** ₺2,000 · deducted from salary

_Interface labels:_ Today · What we build

<a id="roles"></a>
<!-- section:roles component:RoleViews kind:features anchor:#roles-heading sources:messages:customSystems.roles -->

## everyone sees their own work.

_WHO SEES WHAT_

The same order looks different to the manager, sales, the warehouse, the field team and accounting. We decide with you who can see and change what, and every change is logged.

<https://oxarus.com/en/hub/custom-systems#roles-heading>

- **Operations dashboard** · _DASHBOARD_
  See orders, stock, service and team status on one screen. Every role sees its own work.
  - Role-based home screen
  - Live numbers and alerts
  - Works on phone and tablet
- **Who sees what** · _ACCESS_
  The warehouse doesn't see prices, sales doesn't see costs. Every user's permissions and every change they make are logged.
  - Role and user permissions
  - Change history
  - Two-factor sign-in

<!-- demo:start messages:customSystems.roles.demo -->
_Representative interface data_ · Representative

**Role view**

> Representative

- **viewAs:** Whose screen
- **reset:** Reset

- **Murat**
  - **role:** Manager
  - **homeTitle:** Waiting for approval
  - **Quote T-1182 · 10% off** · _Ece Mimarlık · sent by Selin_
    - **action:** Approve
    - **done:** Approved
  - **Leave request · Hakan · 3 days** · _September 22–24_
    - **action:** Approve
    - **done:** Approved
  - **Low stock · Paint** · _8 buckets left, minimum 10_
    - **action:** Reorder
    - **done:** Reordered
- **Selin**
  - **role:** Sales
  - **homeTitle:** Calls for today
  - **Call Ece** · _Quote T-1182 · 10:00_
    - **action:** Called
    - **done:** Call logged
  - **Demir Usta · paint order** · _Waiting for a price_
    - **action:** Send quote
    - **done:** Quote sent
  - **Kaya Dekorasyon · new project** · _Parquet, about 200 m²_
    - **action:** Open task
    - **done:** Task opened
- **Hakan**
  - **role:** Warehouse
  - **homeTitle:** Orders to prepare
  - **#2041 · Plaster · 40 bags** · _Shelf B-14 · Yıldız İnşaat_
    - **action:** Ready
    - **done:** Ready to ship
  - **#2039 · Paint · 12 buckets** · _Shelf D-03 · Demir Usta_
    - **action:** Ready
    - **done:** Ready to ship
  - **Stock count · Tiles** · _Aisle C · 14 items_
    - **action:** Start
    - **done:** Count started
- **Emre**
  - **role:** Field
  - **homeTitle:** Today's service jobs
  - **S-318 · Kaya Dekorasyon** · _Lifted parquet · 14:00_
    - **action:** On my way
    - **done:** On the way
  - **S-319 · Ece Mimarlık** · _Grout check · 16:30_
    - **action:** On my way
    - **done:** On the way
  - **Part request · skirting** · _2 meters for S-318_
    - **action:** Request
    - **done:** Sent to warehouse
- **Aylin**
  - **role:** Accounting
  - **homeTitle:** Invoices to issue
  - **#2040 · Ece Mimarlık** · _e-Invoice · ₺42,900_
    - **action:** Issue invoice
    - **done:** Sent to Logo
  - **#2038 · Kaya Dekorasyon** · _3 days overdue_
    - **action:** Remind
    - **done:** SMS sent
  - **Hakan · advance** · _₺2,000 · September payroll_
    - **action:** Record
    - **done:** Added to payroll

- **greeting:** Good morning, {name}
- **recordTitle:** Order #2041

- **Order #2041:** Record
- **permissions:** Permissions

- Customer
- Product and quantity
- Delivery
- Sale amount
- Cost and margin
- Shelf
- Account balance
- Proof of delivery

- **customer:** Yıldız İnşaat
- **product:** Plaster · 40 bags
- **delivery:** Building site · September 15
- **margin:** {cost} · {margin} margin
- **shelf:** B-14
- **balance:** {balance} · {limit} limit
- **proof:** Photos and signature pending

- **edit:** Can edit
- **view:** Can view
- **hidden:** Hidden

- **hiddenValue:** Hidden for this role
- **fieldColumn:** Field

**Change history**

- Selin created the order
- Hakan set the status to Preparing

- **entry:** {name} · {title}: {done}

<!-- demo:end -->

<a id="approvals"></a>
<!-- section:approvals component:ApprovalFlow kind:features anchor:#approvals-heading sources:messages:customSystems.approvals -->

## one record from quote to invoice.

_QUOTES AND APPROVALS_

Quotes are prepared on the customer card. A discount above what sales may give goes to a manager for approval; the approved quote becomes an order, and the order becomes an invoice. Who did what, and when, stays on record.

<https://oxarus.com/en/hub/custom-systems#approvals-heading>

**Customer and quote tracking**

_CUSTOMERS_

Quotes, calls, orders and collections on the same customer card. The sales team may change; the knowledge stays with the company.

- Quote and approval flow
- Reminders and tasks
- Balance and collections

<!-- demo:start messages:customSystems.approvals.demo -->
_Representative interface data_ · Representative

**Quote T-1182**

> Representative

- **restart:** Start over

**Ece Mimarlık**

- **type:** Architecture studio · customer for 2 years
- **Contact:** Ece
- **Account owner:** Selin · Sales
- **balanceLabel:** Open balance

**Recent activity**
- Yesterday · Selin called, they asked for the price again
- Last week · quote sent by email
- August · #1987 delivered

- **Reminder:** Tomorrow 10:00 · call Ece

1. Quote
2. Approval
3. Order
4. Invoice

- **waiting:** Waiting
- **current:** Now
- **done:** Done
- **skipped:** Not needed

- **product:** Tiles · 60 m²
- **unitPrice:** {price} per m²

> Selin can give up to {limit} off.

- **needsApproval:** {discount} off needs Murat's approval.
- **withinLimit:** Within sales authority, no approval needed.
- **subtotal:** Subtotal
- **Discount:** Discount
- **vat:** VAT {rate}
- **total:** Total

- **sendApproval:** Send for approval
- **sendCustomer:** Send to customer
- **approve:** Approve as Murat
- **reject:** Send back
- **order:** Convert to order
- **invoice:** Issue invoice

- **approval:** Waiting for Murat's approval
- **customer:** Waiting for Ece's reply
- **invoice:** Aylin will issue the invoice

- **done:** Invoice issued, e-invoice sent to Logo.

**Activity**

- **created:** Selin prepared the quote
- **sentApproval:** Selin sent it for approval at {discount} off
- **approved:** Murat approved
- **rejected:** Murat sent it back: {limit} at most
- **sentCustomer:** Quote emailed to Ece
- **ordered:** Ece accepted, #2040 opened and stock reserved
- **invoiced:** Aylin issued the invoice, sent to Logo

<!-- demo:end -->

<a id="service"></a>
<!-- section:service component:ServiceBoard kind:features anchor:#service-heading sources:messages:customSystems.service -->

## every job has an owner and a deadline.

_SERVICE AND FIELD WORK_

A fault report becomes a job and goes to the right technician. The dashboard warns you as the promised time runs down; the job is closed from a phone with photos and a signature, and the customer is updated by SMS.

<https://oxarus.com/en/hub/custom-systems#service-heading>

<!-- demo:start messages:customSystems.service.demo -->
_Representative interface data_ · Representative

**Service board**

> Representative

- **now:** Time
- **speed:** 1 second = 5 minutes
- **reset:** Reset

- New
- Assigned
- On site
- Closed

- 0
  - **no:** S-316
  - **customer:** Yıldız İnşaat
  - **issue:** Door frame fitting check
  - **place:** Building site
- 1
  - **no:** S-317
  - **customer:** Yıldız İnşaat
  - **issue:** Plasterboard arrived damaged
  - **place:** Building site
- 2
  - **no:** S-318
  - **customer:** Kaya Dekorasyon
  - **issue:** Lifted parquet in the living room
  - **place:** Apartment
- 3
  - **no:** S-319
  - **customer:** Ece Mimarlık
  - **issue:** Tile grout check
  - **place:** Office
- 4
  - **no:** S-320
  - **customer:** Demir Usta
  - **issue:** Paint mixer breakdown
  - **place:** Shop
- 5
  - **no:** S-321
  - **customer:** Kaya Dekorasyon
  - **issue:** Skirting fitting
  - **place:** Apartment
- 6
  - **no:** S-322
  - **customer:** Ece Mimarlık
  - **issue:** Bathroom tile survey
  - **place:** Building site
- 7
  - **no:** S-315
  - **customer:** Demir Usta
  - **issue:** Color chart and sample delivery
  - **place:** Shop

- Emre
- Burak
- Deniz

- **left:** {time} left
- **late:** {time} late
- **onTime:** Closed on time
- **closedLate:** Closed late
- **hours:** {h} h {m} min
- **minutes:** {m} min
- **unassigned:** Unassigned
- **selectHint:** Pick a job to see its details.
- **assign:** Assign a technician
- **start:** Mark on site
- **proofLabel:** To close
- **photo:** Add photos
- **photoDone:** 2 photos added
- **signature:** Get signature
- **signatureDone:** Signed
- **close:** Close job
- **needProof:** A job can't close without photos and a signature.

> Job closed, report sent to the customer.

- **phoneTitle:** Field screen

**SMS to the customer**

- **assigned:** {tech} has been assigned to your service job {no}.
- **onsite:** Our technician {tech} has arrived.
- **closed:** {no} is closed. A report with photos was sent to your email.

- **escalation:** {time} left on {no}, Murat has been notified.

<!-- demo:end -->

<a id="automation"></a>
<!-- section:automation component:AutomationRules kind:features anchor:#automation-heading sources:messages:customSystems.automation -->

## rules take over repeated work.

_AUTOMATION AND INTEGRATIONS_

We turn the steps you repeat by hand every day into rules anyone can read. When a rule runs, the log shows what went to your accounting software, e-invoicing or WhatsApp.

<https://oxarus.com/en/hub/custom-systems#automation-heading>

- **Steps that run themselves** · _AUTOMATION_
  We turn the manual work you do every day into rules: approvals, notifications, work orders, invoice drafts.
  - SMS, email, WhatsApp notifications
  - Approval and escalation rules
  - Scheduled tasks
- **Accounting and ERP integration** · _INTEGRATIONS_
  Talks to Logo, Mikro, Netsis or Paraşüt. You never enter the same data in two systems.
  - Account and stock matching
  - Invoice and delivery note sync
  - Bank and email connections

<!-- demo:start messages:customSystems.automation.demo -->
_Representative interface data_ · Representative

**Rules**

> Representative

- **when:** Trigger
- **then:** Actions
- **on:** On
- **toggle:** Turn the rule on or off
- **run:** Run now
- **logTitle:** Run log

> Live

- **skipped:** Skipped: rule is off
- **seconds:** {value} s
- **accountingLabel:** Your accounting software

> Names show systems we can connect to; they do not imply a partnership.

- **#2042 approved · Kaya Dekorasyon**
  - **trigger:** When an order is approved
  - Reserve stock
  - Open a warehouse work order
  - Send the customer a WhatsApp message
  - Send a draft invoice to accounting
  - Parquet · 85 m² reserved
  - WO-5521 · on Hakan's list
  - Template: your order is being prepared
  - {accounting} · draft invoice created
- **Paint · 8 buckets left, minimum 10**
  - **trigger:** When stock drops below its minimum
  - Open a purchasing task
  - Email Murat
  - Task: 40 buckets of paint
  - Email sent
- **S-317 · Yıldız İnşaat**
  - **trigger:** 30 minutes before a service job is due
  - Notify the team lead
  - Text the customer
  - Murat notified
  - SMS: technician on the way
- **#2040 · Ece Mimarlık**
  - **trigger:** When an invoice is issued
  - Create the e-invoice or e-archive invoice
  - Email the PDF to the customer
  - e-Invoice sent
  - Email sent
- **₺42,900 · Ece Mimarlık**
  - **trigger:** When a payment reaches the bank
  - Match the payment to the account
  - Post the collection to accounting
  - #2040 paid
  - {accounting} · collection posted
- **Weekly report time**
  - **trigger:** Every Monday at 08:00
  - Build the sales report as Excel
  - Email it to management
  - weekly\_sales.xlsx
  - Sent to 3 people

**Connected systems**
- **Logo**
  - **group:** Accounting
- **Mikro**
  - **group:** Accounting
- **Netsis**
  - **group:** Accounting
- **Paraşüt**
  - **group:** Accounting
- **e-Invoice and e-Archive**
  - **group:** Invoicing
- **WhatsApp Business**
  - **group:** Messaging
- **SMS**
  - **group:** Messaging
- **Email**
  - **group:** Messaging
- **Bank transactions**
  - **group:** Collections
- **Excel and CSV**
  - **group:** Files

<!-- demo:end -->

<a id="reports"></a>
<!-- section:reports component:ReportsView kind:features anchor:#reports-heading sources:messages:customSystems.reports -->

## the numbers are ready each morning.

_REPORTS_

Sales, stock turnover, service times and workload come from the same records. Filter a report and take it as Excel or PDF.

<https://oxarus.com/en/hub/custom-systems#reports-heading>

**Reports and exports**

_REPORTS_

Weekly sales, inventory turnover, service times, staff performance. Any report can go to Excel too.

- Ready-made management reports
- Filterable tables
- Excel and PDF export

<!-- demo:start messages:customSystems.reports.demo -->
_Representative interface data_ · Representative

**Reports**

> Representative

This week · This month · Last 3 months

- **week:** Week {week}
- **previous:** Vs previous period
- **highest:** Highest
- **breakdown:** Breakdown
- **share:** Share
- **exportLabel:** Export
- **preparing:** Preparing
- **ready:** {file} is ready

- **days:** {value} days
- **hours:** {value} h
- **jobs:** {value} jobs

- **thousands:** ₺{value}k

- _Sales_
  - **total:** Total sales
  - **by:** By customer
  - **file:** sales\_report
  - Yıldız İnşaat
  - Ece Mimarlık
  - Kaya Dekorasyon
  - Demir Usta
- _Stock turnover_
  - **total:** Average days to turn over
  - **by:** By product
  - **file:** stock\_turnover\_report
  - Plaster
  - Tiles
  - Paint
  - Parquet
- _Service time_
  - **total:** Average time to close
  - **by:** By job type
  - **file:** service\_time\_report
  - Fitting
  - Breakdown
  - Inspection
  - Delivery damage
- _Workload_
  - **total:** Jobs closed
  - **by:** By person
  - **file:** workload\_report
  - Hakan
  - Emre
  - Selin
  - Aylin

<!-- demo:end -->

<a id="compare"></a>
<!-- section:compare component:SystemCompare kind:compare anchor:#compare-heading sources:messages:customSystems.compare -->

## a system that fits you.

_EXCEL, OFF-THE-SHELF, CUSTOM_

Excel is cheap to start with but breeds errors as you grow. Off-the-shelf software is orderly, but it runs on its own templates, not on how your business works.

<https://oxarus.com/en/hub/custom-systems#compare-heading>

|  | EXCEL AND OFF-THE-SHELF | A SYSTEM BUILT FOR YOU |
| --- | --- | --- |
| A fee for every user? | Monthly per-user licenses: The bill grows with the team; even giving warehouse staff an account costs money. | No user limit: Built once. Use it with 5 people or 500. |
| Does it fit your workflow? | You adapt to the software: The team is forced to work around the software's fields and steps, and whatever doesn't fit ends up back in Excel. | The software adapts to you: Forms, approval steps and reports are designed around the way you work today. |
| Who holds the data? | In files or with the vendor: Excel files sit on personal computers; with off-the-shelf software, your data lives on the vendor's servers. | Your company: The database and source code are yours. Backups and access are under your control. |
| Errors and rework? | Same data, typed in several places: When orders, stock and invoices live in different places, the numbers never match and every month ends with a reconciliation. | Data is entered once: The moment an order is entered, inventory, warehouse and accounting all see the same data. |

<!-- demo:start messages:customSystems.compare.visuals -->
_Representative interface data_ · Representative

> Representative

**As users are added**

- **pick:** Users
- **users:** {count} users
- **EXCEL AND OFF-THE-SHELF:** {count} user licenses
- **A SYSTEM BUILT FOR YOU:** No user licenses

**Order form**

**EXCEL AND OFF-THE-SHELF**
- Customer
- Product
- Quantity
- Notes

**EXCEL AND OFF-THE-SHELF**
- Yıldız İnşaat
- Plaster
- 40

> site in Çekmeköy, deliver Friday, Ali's truck

- **missing:** No field on the form

**A SYSTEM BUILT FOR YOU**
- Customer
- Product and unit
- Site address
- Delivery day
- Truck and driver

**A SYSTEM BUILT FOR YOU**
- Yıldız İnşaat
- Plaster · 40 bags
- Çekmeköy site
- Friday
- 34 ABC 12 · Ali

**Where the data lives**

**EXCEL AND OFF-THE-SHELF**
- The accounting PC
- A salesperson's laptop
- The vendor's server

**A SYSTEM BUILT FOR YOU**
- Database
- Source code
- Backups
- Access rights

- **yours:** Yours

**How many places one order is typed**

- Excel
- Accounting software
- WhatsApp

- 40 bags
- 45 bags
- 4 bags

- **mismatch:** The numbers don't match
- **once:** Entered once

- Stock
- Warehouse
- Accounting

- **value:** 40 bags

<!-- demo:end -->

<a id="migration"></a>
<!-- section:migration component:DataMigration kind:migration anchor:#migration-heading sources:messages:customSystems.migration -->

## years of data, nothing lost.

_DATA MIGRATION_

We clean up your Excel files, records from old software and customer lists, then move them into the new system. You don't start day one with an empty screen.

<https://oxarus.com/en/hub/custom-systems#migration-heading>

**From**
- Excel files
- Google Sheets
- Legacy software
- Logo / Mikro
- Email archive
- Paper forms

- **To:** A dashboard built for your company

> The database and code are yours; no user limit.

<!-- demo:start messages:customSystems.migration.counters -->
_Representative interface data_ · Illustrative figures.

- **Customer records:** 3,840
- **Stock items:** 1,260
- **Past orders:** 27,450
- **Service records:** 8,920

<!-- demo:end -->

- Duplicate records removed
- Wrong and missing fields fixed
- Old and new systems run side by side briefly
- Post-migration verification report

- **queued:** Queued
- **running:** Moving
- **verified:** Checked

**Clean-up**

- 0
  - **before:** YILDIZ INŞ. / Yıldız İnşaat
  - **rule:** Same customer merged
  > Yıldız İnşaat
- 1
  - **rule:** Status picked from a list
  shipped??
  > In transit
- 2
  - **before:** Paint 12 buckets
  - **rule:** Product, quantity and unit split
  > Paint · 12 · buckets
- 3
  - **before:** Phone: empty
  - **rule:** Flagged to be filled in
  > Missing field

#### Switchover

- **open old:** Old files still in use
- **open new:** The dashboard is the only source

_Interface labels:_ Play migration · Play again

<a id="process"></a>
<!-- section:process component:RolloutTimeline kind:steps anchor:#process-heading sources:messages:customSystems.process -->

## in use in four steps.

_HOW WE WORK_

First we learn your business, then we sketch the screens with you.

<https://oxarus.com/en/hub/custom-systems#process-heading>

1. **Discovery** · _WEEKS 1–2_
   We sit down with your team and watch how work actually gets done today: which files, which messages, which approvals.
   **What you get**
   - Workflow map
   - Priority order
   - Clear price and timeline
2. **Design** · _WEEKS 3–4_
   We sketch the screens for every role, then refine them as your team tries out a clickable prototype.
   **What you get**
   - Role-based screen designs
   - Clickable prototype
   - Team feedback round
3. **Build** · _WEEKS 5–10_
   We build the system, connect it to accounting and your other software, and migrate your data. You see a working version every two weeks.
   **What you get**
   - A build every two weeks
   - Integrations and automations
   - Data migration report
4. **Rollout** · _WEEK 10+_
   We train your team and stay close through the first weeks. As new needs come up, we keep growing the system.
   **What you get**
   - User training
   - Live support
   - Development and maintenance options

<!-- demo:start messages:customSystems.process.visuals -->
_Representative interface data_ · Representative

> Representative

- **map:** Workflow map

- Order
- Stock
- Warehouse
- Shipping
- Invoice

- Excel
- WhatsApp
- Paper
- Phone
- Email

- **screens:** Role screens

- Manager
- Sales
- Warehouse
- Field
- Accounting

- **builds:** A build every two weeks

- Orders and stock
- Warehouse and service
- Accounting link

- **buildWeek:** Week {week}
- **rollout:** Teams on the dashboard

- Management
- Sales
- Warehouse
- Field
- Accounting

<!-- demo:end -->

_Interface labels:_ STEP

<a id="faq"></a>
<!-- section:faq component:FaqSection kind:faq anchor:#faq-heading sources:messages:customSystems.faq -->

## your questions.

_FAQ_

Don't see your question here? Write to us.

<https://oxarus.com/en/hub/custom-systems#faq-heading>

**Question:** Why a custom system when off-the-shelf software exists?

**Answer:** If your business fits an off-the-shelf product, we'll recommend it and say so plainly. If per-user fees keep growing, half the work still runs in Excel, or you have a workflow unique to you, a custom system is cheaper and more efficient in the long run.

**Question:** My team isn't very tech-savvy. Can they use it?

**Answer:** We design the screens around the language and routines your team already uses, and each role sees only its own work. We train everyone before launch and stay close through the first weeks.

**Question:** What happens to our Excel data?

**Answer:** We review your files, weed out duplicate and faulty records, and migrate the rest into the new system. Old and new run side by side for a short while, and once the numbers match, the switch is complete.

**Question:** Will it work with our accounting software?

**Answer:** We often work with Logo, Mikro, Netsis and Paraşüt. Account, stock, invoice and delivery note data moves between both sides.

**Question:** Can it be used on phones and in the field?

**Answer:** Yes. The dashboard works on phones and tablets too. For field teams, we can add features like photos, location and signatures.

**Question:** How long does it take, and how is the cost set?

**Answer:** Most projects reach a first usable version in 8–10 weeks. Cost depends on the number of screens and integrations; at the end of discovery, we give you a fixed price and timeline.

**Question:** Can we add features later?

**Answer:** Yes. The system is yours, so it grows as your needs do. We can continue with monthly development support or on a per-project basis, whichever you prefer.

> **Let's go over your work**
>
> No commitment, just a short call
>
> Tell us which work runs on Excel, WhatsApp or paper today. We'll figure out together where it makes sense to start.
> - [Request a call](mailto:info@oxarus.com) → `contact()`

<a id="cta"></a>
<!-- section:cta component:ClosingCta kind:cta anchor:#cta-heading sources:messages:customSystems.cta -->

## let's untangle the mess.

_LET'S START_

Just tell us which task takes up most of your time.

<https://oxarus.com/en/hub/custom-systems#cta-heading>

- [Get in touch](mailto:info@oxarus.com) → `contact()`

_Interface labels:_ Copied

## Actions

- [Get in touch](https://oxarus.com/en/hub/custom-systems#cta-heading) → `open_page(path="/hub/custom-systems", anchor="cta-heading")`
- [What we build](https://oxarus.com/en/hub/custom-systems#roles-heading) → `open_page(path="/hub/custom-systems", anchor="roles-heading")`
- [See the order automation](https://oxarus.com/en/hub/custom-systems#automation-heading) → `open_page(path="/hub/custom-systems", anchor="automation-heading")`
- [See the service board](https://oxarus.com/en/hub/custom-systems#service-heading) → `open_page(path="/hub/custom-systems", anchor="service-heading")`
- [See the quote flow](https://oxarus.com/en/hub/custom-systems#approvals-heading) → `open_page(path="/hub/custom-systems", anchor="approvals-heading")`
- [Request a call](mailto:info@oxarus.com) → `contact()`
- [Türkçe](https://oxarus.com/tr/hub/custom-systems) → `switch_locale(locale="tr", path="/hub/custom-systems")`

## Related pages

- [Oxarus Hub](https://oxarus.com/en/hub)
