BOL & Equipment Tracking — Proposed Workflow For Review

For Alexis Whelpley & Nathan Shiba — Updated July 2, 2026
What This Is
This document reflects the finalized BOL workflow for Zoho CRM, updated with all decisions confirmed through July 2, 2026. It covers how BOL records are created, what triggers what, and which fields CS enters vs. what Zoho fills in automatically. Please review and flag anything that doesn't match how CS actually works.

Goal: one place in Zoho where CS can see where every ramp is, which order it's tied to, full movement history, and lifetime freight costs — without a separate spreadsheet.

Confirmed Decisions
Full Rental Lifecycle — Step by Step
1

Order Created — Equipment Assigned

CS or Sales creates an Initial Order Sales Order and assigns a ramp via the YR_Equipment field (slots 1–4 for multi-ramp orders).

Equipment: Checked Out — set automatically

⚡ Automated — YR1 (live)
2

BOL Created in Google Drive — Ramp Ships

CS or management creates the BOL document in Google Drive at dispatch. The ramp ships.

No Zoho entry at this point. The Zoho BOL record does not exist yet — it is created later at delivery when signed paperwork is back.

Equipment: Checked Out (unchanged during transit)

No Zoho action — handled in Google Drive
3

Ramp Arrives + Signed BOL Returned → CS Creates BOL Record in Zoho

Once the ramp is at the customer's location and signed paperwork is back (email or physical copy), CS opens the Sales Order in Zoho and creates a new BOL record from the related records panel.

All fields entered in one shot:

  • BOL Type = Delivery to Customer
  • Carrier, Ship Date, BOL Number, Delivered Date
  • Freight Cost (known at delivery — required)
  • Attach signed BOL from Google Drive

At this same time, CS invoices the order:

  • Invoiced checkbox → checked
  • Date Marked As Invoiced → filled in
  • SO Status → Complete

Equipment: Checked Out — confirmed at this step

✏️ Manual — CS creates BOL record from Sales Order
BOL record creation = delivery confirmation. No "Created → Delivered" status transition needed. The record existing means it was delivered.
4

Rental Period — Monthly Charges Running

Ramp is at the customer site. Monthly Charge SOs are generated automatically (YR3).

When the customer gives notice, CS records Notification of Contract End on the Initial Order SO. Rental status formula changes to Available – Pending Return.

Equipment: Checked Out

⚡ Monthly charges automated — YR3 (live)
5

Pickup Scheduled

Most pickups are not known in advance. Typical flow: customer gives notice → Standard 30-Day window → freight scheduled reactively.

When a firm date exists, CS or Sales (whoever takes the call) fills in Rental_Pickup_Requested_Date.

YR4 auto-escalation: If Pickup Type = Standard 30-Day and the Pickup Required By date is 10 days away, Zoho automatically changes it to Customer Hard Date.
✏️ Manual — CS or Sales (whoever takes the call)
6

Ramp Picked Up + Signed Return BOL Received → CS Creates Return BOL in Zoho

When the ramp ships out and signed return paperwork is back, CS opens the Sales Order and creates a second BOL record.

  • BOL Type = Return from Customer
  • Origin address (customer site) → destination address (hub or next customer site)
  • Carrier, Ship Date, BOL Number, Delivered Date
  • Freight Cost (if applicable)
  • Attach signed paperwork from Google Drive
Automation fires on Return BOL creation: Equipment is automatically updated — no separate manual edit to the equipment record needed.
  • Rental_Status → Available
  • Current_City / Current_State → destination from this BOL
  • Last_Move_Date → today
  • Current_SO → cleared
✏️ Manual — CS creates Return BOL from Sales Order ⚡ Equipment auto-updated by automation
Available ≠ at a hub. Ramps typically ship customer-to-customer. "Available" means the rental is complete and the ramp is ready to be assigned to the next order. Where it physically is at that moment is tracked on the YR_Equipment record (auto-updated by the return BOL).
Customer-to-Customer Moves
Equipment does not always return to HPI between rentals. When a ramp ships directly from one customer site to the next, there is no return BOL from the previous customer — only a delivery BOL for the new order.

The flow in Zoho:

  1. Equipment leaves Customer A's site and heads directly to Customer B
    No return BOL is created for Customer A's SO. Equipment does not enter "Available" status.
  2. Equipment record in Zoho is updated with Customer B's new order information
  3. Delivery BOL created on Customer B's SO when ramp arrives and signed paperwork is back
    Automation: Equipment → Checked Out, location updated to Customer B's site
Equipment never goes "Available" in a customer-to-customer transfer. The Available status is only set when a return BOL is created (i.e. equipment returns to HPI or is formally released). Origin/destination addresses on each delivery BOL tell the full movement story.
New Zoho Module: Bills of Lading To Be Built

One record per shipment, created from the Sales Order by CS at delivery (or at return). Gives complete movement history for every ramp.

FieldTypeReq?Notes
EquipmentYR_Equipment lookupRequiredAuto-pulled from Sales Order on creation
Sales OrderSO lookupRequiredAuto-populates — CS creates BOL from SO
BOL TypePicklistRequiredDelivery to Customer / Return from Customer / Other
CarrierTextRequiredFree text — multi-vendor
Freight CostCurrencyRequiredEntered at creation time. Replaces freight spreadsheet. Rolls up to SO + YR_Equipment lifetime total.
BOL NumberTextPhysical BOL number from paperwork
Carrier Reference / PRO #TextCarrier's tracking or PRO number
Ship DateDateWhen freight picked up (known at delivery — entered retroactively)
Delivered DateDateConfirmed delivery date
BOL AttachmentFileSigned BOL — attached from Google Drive at time of record creation
NotesText areaAnything CS needs to flag
No Status field needed. BOL record creation = delivery confirmed. The only edge case is a cancelled shipment — if needed, a simple Cancelled checkbox handles that without a full status workflow.
YR_Equipment Module — New Fields To Be Added

These give CS a real-time snapshot of where each ramp is and its freight history — mostly auto-populated by BOL automation.

FieldTypeHow it's set
Current_City Text Auto-updated from return BOL destination when CS creates Return BOL. Already exists in Zoho — currently unpopulated.
Current_State Text Same — auto-updated from return BOL. Already exists in Zoho — currently unpopulated.
Current_SO SO lookup Auto-set on Delivery BOL creation. Auto-cleared on Return BOL creation (automation). CS can also clear manually.
Last_Move_Date Date Auto-updated to today whenever any BOL is created for this equipment.
In_Service_Date Date Auto-set from first Delivery BOL — only if currently blank. Manual entry wins.
Total_Freight_Cost Currency (rollup) Sum of all Freight_Cost values across all BOLs linked to this equipment. Lifetime freight spend per ramp.
Existing fields not changing: Name/Serial Number, Genius_ID, Rental_Status (Available / Checked Out). CS still assigns Checked Out via SO assignment (YR1). Rental_Status flips to Available automatically when Return BOL is created.
Automation Summary — What Happens When

BOL-A — On Delivery BOL Created

To Build
TriggerNew BOL record created with BOL Type = Delivery to Customer
Actions Set Current_SO on YR_Equipment → this BOL's Sales Order
Set In_Service_Date on YR_Equipment → Delivered Date (only if currently blank)
Set Last_Move_Date on YR_Equipment → today

BOL-B — On Return BOL Created

To Build
TriggerNew BOL record created with BOL Type = Return from Customer
Actions Set Rental_Status on YR_Equipment → Available
Set Current_City on YR_Equipment → destination city from this BOL
Set Current_State on YR_Equipment → destination state from this BOL
Set Last_Move_Date on YR_Equipment → today
Clear Current_SO on YR_Equipment
ResultCS creates the Return BOL — equipment record is fully updated automatically. No separate manual edit needed.
What stays manual: Only the BOL data entry itself (Carrier, dates, freight cost, attachment). Everything on the equipment record is handled by automation.
Freight Cost — Where It Lives

Entered once on the BOL record — surfaces in two places for reporting.

WhereWhat it showsUse
BOL Record Cost for this specific shipment What did it cost to move this ramp on this date?
Sales Order Delivery freight cost for this rental. Return freight is on its own BOL tied to the departing SO. What did it cost to deliver the ramp to this customer?
YR_Equipment Record Lifetime total freight cost across all BOLs How much have we spent moving this ramp over its service life?
What's Already Live in Zoho
AutomationTriggerStatus
YR1 / YR1b / YR1c / YR1dEquipment assigned to SO → set Checked Out (all 4 slots)Live
YR2Notification of Contract End entered → set Available (all 4 slots)Live
YR2bCancellation cleared before pickup → revert to Checked OutLive
YR3Monthly Charge SO auto-generationLive
YR410 days before Pickup Required By → escalate to Customer Hard DateLive
Bills of Lading moduleFull movement + freight cost layerNot Built Yet
BOL-A (Delivery auto-update)Current_SO, In_Service_Date, Last_Move_Date on deliveryNot Built Yet
BOL-B (Return auto-update)Available + location update + Current_SO clear on returnNot Built Yet
Open Questions for Alexis

Everything else is confirmed — just these remaining items before we build.

1. Does "Return from Customer" BOL always exist?

In a customer-to-customer move, is there always a return BOL created for the departing customer — or does the ramp just get assigned to the new SO without a formal return BOL? This affects how the Available status gets set.

2. Destination city/state on the return BOL — how is it captured?

For the auto-update to work (Current_City/State on YR_Equipment), the return BOL needs a destination address or city/state fields. Should those be free-text fields on the BOL, or pulled from the Sales Order the ramp is going to next?