Field2Bill
Field service · billing platform

From field ticket to paid invoice — in one place.

Dispatch crews, track rentals, and bill clients. Role-based access keeps every team on exactly what they need.

Secure sign-in
Role-based access
Live field sync

Sign in

Welcome back. Sign in to your account to continue.

Forgot?
{{ loginError }}
Demo · sign in as
{{ devMsg }}
Field2Bill
Platform console
Platform admin
long.vu.t@gmail.com

Client workspaces

Provision a new tenant and its first user, then set each client's logo and brand colour — no database access required. Tenant users sign in from the normal login with the credentials you set here.

New client workspace
Creates the tenant plus its first user account.
{{ devLogoEl }}
First user
No workspaces yet
Create your first client workspace on the left. It will appear here, where you can manage its branding and users.
{{ t.logoEl }}
{{ t.initials }}
{{ t.name }}
{{ t.userLabel }}
{{ t.detailLine }}
{{ t.addrLine }}
Edit workspace details
Brand colour
Logo
Users
{{ u.initials }}
{{ u.name }}
{{ u.email }}
{{ u.role }}
{{ pageTitle }}
{{ pageDesc }}
Search jobs, tickets, crews…
{{ kpi.label }}
{{ kpi.value }}
{{ kpi.delta }}
{{ kpi.sparkEl }}
Revenue invoiced
Last 8 months · field tickets converted to billing
▲ 12.4% YoY
{{ revenueChartEl }}
{{ m }}
Live job costing
Actual vs budgeted, updating as tickets sync
{{ row.name }} {{ row.actual }} / {{ row.budget }}
{{ row.label }}
Field → Bill pipeline
Every ticket, traced to an invoice
Ready to invoice
{{ readyAmt }}
{{ readyCount }} approved tickets waiting
{{ st.label }} {{ st.count }}
Recent activity
{{ a.who }} {{ a.what }}
{{ a.when }}
Crew availability
{{ crewAvailSummary }} to dispatch
{{ p.name }}
{{ p.role }}
{{ p.badgeLabel }}
Low stock alert
Under 20% available
{{ lowStockCount }} low
{{ m.name }} {{ m.avail }} / {{ m.qty }} · {{ m.pct }}%
All materials above 20% available — stock levels healthy.
{{ cpLogoEl }}
{{ cpInitials }}
Company profile
Your workspace branding and billing details. Used across the app — edits save automatically.
Auto-saved
Brand colour
Logo
$
QuickBooks Online
Invoices created in Field2Bill sync to QuickBooks, which handles sending and payment tracking. The customer's email lives in QuickBooks.
Connected
Company file {{ qboCompany }} Last sync · just now
Not connected — click Connect to QuickBooks to link your company file. Until then, invoices use a placeholder number.
Customer mapping
Field2Bill client QuickBooks customer Invoice email Status
{{ c.name }} {{ c.qbo }} {{ c.email }} {{ c.badgeLabel }}
{{ msgs.cust }}
Mapping links a client to its QuickBooks customer record — it doesn’t send anything on its own; it just tells Field2Bill which QuickBooks customer (and which email on file) to file invoices under when you later send a ticket. Add new clients above, or Unlink one that was mapped to the wrong customer.
Build a crew
{{ msgs.crew }}
Crew roster
Crew Members Equipment
{{ r.name }} {{ r.members }} {{ r.equipment }}
Add / edit equipment
{{ msgs.equip }}
Equipment roster
Equipment Type Rate
{{ r.name }} {{ r.type }} {{ r.rate }}
Add / edit employee
{{ c.type }}
Expires {{ c.expFmt }}
{{ c.statusLabel }}
Type
Expires
{{ msgs.employee }}
Employee roster
{{ availCount }} available
Employee Rate Crew Status
{{ r.initials }}
{{ r.name }}
{{ r.role }}
{{ r.rate }} {{ r.crewLabel }} {{ r.status }}
{{ r.certCount }} on file
Add / edit job site
{{ msgs.job }}
Add / edit material
Create a new catalog item or update an existing one.
{{ msgs.material }}
Catalog
{{ catalogTotal }} materials in the system. New items appear in the Inventory catalog and material pickers.
{{ catalogTotal }}
total SKUs
Tip: pick a material above to edit its name, category, on-hand quantity, ft³, cost, or PO. Editing quantity here adjusts available stock directly — purchase orders remain the audit trail for stock received.
{{ poFormTitle }}
Records a purchase and adds the quantities to inventory.
Qty
Unit cost $
{{ ln.name }}
{{ ln.code }} · {{ ln.detail }}
{{ ln.ext }}
PO total {{ poFormTotal }}
{{ msgs.po }}
Purchase order history
Linked to the inventory catalog · edit to adjust stock.
PO # Date Materials Cost
{{ r.po }} {{ r.date }}
{{ r.supplier }}
{{ r.matCount }}
{{ r.total }}
Assign resource to job
Push a crew or individual to a site in real time. Expired-cert workers are blocked.
{{ msgs.dispatch }}
Currently on site
{{ d.tag }}
{{ d.who }}
{{ d.job }}
Active
Turn a paper request form into a tagged digital ticket — captured on the tablet, synced to the office.
Auto-tagged on submit
{{ reqCube }}
A copy of the request is emailed here as confirmation when you sync.
Sign here
{{ msgs.request }}
Look up an existing tag to extend it, change its status, or add a note — keeps the office in sync.
{{ msgs.request }}
All tags & status — tap a tag to load it above
{{ t.job }}
{{ t.requester }}
{{ t.status }}
No tags yet — submit a request or check out material to a job site.
Recent requests
Synced to the office — tap to view or print the request slip.
{{ r.job }}
{{ r.reqNo }} · {{ r.requester }}{{ r.sizeSuffix }}{{ r.onSiteSuffix }}
{{ r.statusLabel }}
No requests yet. Submit one above to generate a tag.
$
Connected to QuickBooks Online
Invoices sync to {{ qboCompany }} — sending & payments are handled in QuickBooks.
Live
!
Not connected to QuickBooks
Invoices get a placeholder number until you connect. Go to Admin → QuickBooks to connect.
Offline
Ready to invoice
{{ readyAmt }}
Approved tickets
{{ readyCount }}
Invoiced this month
{{ invoicedCount }}
Field tickets · review & send to QuickBooks
Ops approves → Billing sends to QuickBooks
Ticket Job site Amount Status Action
{{ r.id }} {{ r.job }} {{ r.amount }} {{ r.badgeLabel }} Awaiting review Disapproved · {{ r.reviewBy }} Approved · awaiting billing In QuickBooks · {{ r.qboNum }}
{{ k.label }}
{{ k.value }}
Job costing dashboard
Job site Budget Actual (live) Variance Margin status
{{ r.name }} {{ r.budget }} {{ r.actual }} {{ r.variance }} {{ r.label }}
Scaffold rental invoice report
Editable rental billing by work order — {{ rentReportCount }} tags · grand total {{ rentReportGrand }}
WO # Tag # M/S Approver Date Up Date Down Last Bill Size Cubic ft Daily RR Days Amount
Sum for WO# {{ g.wo }}
{{ r.cubic }} {{ r.dailyRRFmt }} {{ r.amountFmt }}
Total for WO# {{ g.wo }}{{ g.subtotalFmt }}
Grand total {{ rentReportGrand }}
{{ k.label }}
{{ k.value }}
{{ k.sub }}
Check out material to a job site
Add several materials and assign them to a tag # — a new one or an existing tag on the job.
Unit ft³ (billing basis — auto-fills from material)
{{ o.label }}
Quantity
{{ it.name }}
{{ it.code }} · {{ it.cubicEach }} ft³/unit
×{{ it.qty }}
{{ it.totalCube }} ft³
{{ msgs.checkout }}
Generate rental invoice
Bill a client for a month or a custom date range.
Material · qty × ft³ × days{{ rateLabel }}
{{ ln.name }}
{{ ln.detail }}
{{ ln.amount }}
No billable rental days for this job in the selected period.
Invoice total
Period · {{ periodLabel }}
{{ invoiceTotal }}
{{ msgs.rentalInv }}
Active rentals on site
accruing {{ accruePerDay }} / day
{{ sec.job }}
{{ sec.tagCount }} · {{ sec.jobAccrued }} accrued · {{ sec.jobPerDay }}/day
{{ g.tag }}
{{ g.job }}
{{ g.itemCount }} · {{ g.cubeTotal }} ft³ on hire · since {{ g.started }}
{{ g.accrued }}
{{ g.perDay }}/day
{{ r.name }}
{{ r.code }}
×{{ r.qty }} {{ r.startFmt }} {{ r.days }}d
No materials are currently checked out. Use the form above to check out material to a job site.
Generated rental invoices
Invoice Client Period Issued Total
{{ r.num }} {{ r.client }} {{ r.period }} {{ r.date }} {{ r.total }}
Material catalog
Imported from inventory · {{ catalogTotal }} SKUs · purchase date & lot tracked
Item # Material Category On hand Avail Purchased PO / Lot Unit $
{{ r.code }} {{ r.name }} {{ r.category }} {{ r.qty }} {{ r.avail }} {{ r.purchased }} {{ r.po }} {{ r.cost }}
Showing {{ catalogShown }} of {{ catalogTotal }} materials
Inventory audit & write-offs
Record stock taken out — missing, damaged, or sold. The quantity comes straight off on-hand and available, and is logged below with the date.
{{ msgs.audit }}
Date Material Reason Qty out Note By
{{ a.date }}
{{ a.name }}
{{ a.code }}
{{ a.reason }} −{{ a.qty }} {{ a.note }} {{ a.by }}
No write-offs recorded yet. Use the form above when stock goes missing, is damaged, or gets sold.
{{ viLogoEl }}
{{ viInitials }}
{{ viFrom }}
{{ viFromLine1 }}
{{ viFromLine2 }}
{{ viFromContact }}
INVOICE
{{ viNum }}
Bill to
{{ viTo }}
{{ viToLine1 }}
{{ viToLine2 }}
Attn: {{ viToAttn }}
Issued{{ viDate }}
Period{{ viPeriod }}
Job{{ viJob }}
Tags{{ viScope }}
Billing{{ viBilling }}
Tag / charge Amount
Tag {{ g.tag }} · {{ g.items }}
{{ r.basis }} {{ r.amount }}
Tag {{ g.tag }} subtotal{{ g.subtotal }}
Subtotal{{ viSubtotal }}
Tax$0.00
Total due{{ viTotal }}
Terms
Net 30. Equipment rental billed at {{ viRateLabel }} on the cubic volume on hire. Please reference invoice {{ viNum }} on remittance.
Thank you for your business
{{ viFrom }}
{{ repLogoEl }}
{{ repInitials }}
{{ repFrom }}
{{ repFromLine1 }}
{{ repFromLine2 }} · {{ repFromPhone }}
{{ repTitle }}
{{ repScope }}
{{ repSub }}
Rental detail
As of {{ repAsOf }} · {{ viRateLabel }}
{{ sec.job }}{{ sec.jobTotal }}
Material Qty Start Days
Tag {{ tg.tag }} · {{ tg.cubeLabel }}
{{ ln.name }}
{{ ln.code }}
{{ ln.qty }} {{ ln.startFmt }} {{ ln.days }}
Tag {{ tg.tag }} rental{{ tg.subtotal }}
Total accrued to date{{ repGrand }}
Lists equipment currently on hire for {{ repScope }}, grouped by tag. Accrual is calculated at the cubic daily rate up to the date shown. Not an invoice.
{{ vtId }}
{{ vtBadgeLabel }}
{{ vtJob }}
Crew
{{ vtCrew }}
Submitted by
{{ vtBy }}
Date
{{ vtDate }}
Crew & equipment
{{ ln.label }}
{{ ln.detail }}
{{ ln.amount }}
Ticket total {{ vtTotal }}
Sent to QuickBooks · {{ vtQbo }}
{{ pdOrg }}
{{ pdTitle }}
{{ pdStamp }}
{{ pdCount }}
{{ h }}
{{ c.v }}
Field2Bill
Scaffold operations · {{ reqTenant }}
Dispatched first-come, first-serve unless emergency
SCAFFOLD REQUEST
REQ # {{ rqReqNo }}
Tag #
{{ rqTag }}
Work order #
{{ rqWO }}
Status
{{ rqStatus }}
Requested by
{{ rqRequester }}
Company / contractor
{{ rqContractor }}
Location
{{ rqLocation }}
Unit / area
{{ rqUnit }}
Job site
{{ rqJob }}
Description of work
{{ rqDesc }}
Scaffold description
{{ c.check }}{{ c.label }}
Scaffold size
{{ rqSize }}
Volume
{{ rqCubeDoc }}
Date erected
{{ rqDateErected }}
Confined space
{{ rqConfined }}
Estimated duration
{{ rqDuration }}
Comments
{{ rqComments }}
{{ rqSigEl }}
Requester name — print & signature
Approved by — {{ rqClientSig }} representative
Confirmation emailed to {{ rqContactEmail }}
General contractors: any work requested must be approved by a {{ rqClient }} representative. If the project is contracted between {{ reqTenant }} and the GC, {{ rqClient }} approval is not required. All requests are processed and dispatched on a first-come, first-serve basis unless an emergency.
Rental Invoice Report
COMPANY ID = {{ rrCompanyId }} · Zone {{ rrZone }}
{{ rrCompanyId }}
Billing Date: {{ rrBillingDateFmt }}
Last Billing Date: {{ rrLastBillFmt }}
Rent {{ rrRentDays }} days
WO # Tag # M/S Approver Date Up Date Down Last Bill Size Cubic ft Daily RR Days Amount
Sum for WO# {{ g.wo }}
{{ r.wo }} {{ r.tag }} {{ r.ms }} {{ r.approver }} {{ r.dateUpFmt }} {{ r.dateDownFmt }} {{ r.lastBillFmt }} {{ r.size }} {{ r.cubic }} {{ r.dailyRRFmt }} {{ r.billingDays }} {{ r.amountFmt }}
Total:{{ g.subtotalFmt }}
Total Scaffold Orders = {{ rentReportCount }} Grand Total: {{ rentReportGrand }}
Review ticket {{ reviewTId }}
{{ reviewTJob }}
Saved under your name. Editing a disapproved ticket reopens it for review.
Add contact
New contact — saved so you can reuse it on future requests.
Edit rental item
{{ eiName }}
{{ eiCode }} · {{ eiTag }}
DateChangeOn hire
{{ ev.dateFmt }} {{ ev.qtyLabel }} {{ ev.running }}
Date
+ / − qty
Currently on hire {{ editCurQty }} units on hire
Edit tag
Effective fromCubic ft
{{ sr.dateFmt }} {{ sr.cubic }}
Effective from
Cubic ft
Each value applies until the next date. Billing accrues across each segment.