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.
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).
⚡ Automated — YR1 (live)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.
No Zoho action — handled in Google DriveOnce 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:
At this same time, CS invoices the order:
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.
⚡ Monthly charges automated — YR3 (live)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.
When the ramp ships out and signed return paperwork is back, CS opens the Sales Order and creates a second BOL record.
The flow in Zoho:
One record per shipment, created from the Sales Order by CS at delivery (or at return). Gives complete movement history for every ramp.
| Field | Type | Req? | Notes |
|---|---|---|---|
| Equipment | YR_Equipment lookup | Required | Auto-pulled from Sales Order on creation |
| Sales Order | SO lookup | Required | Auto-populates — CS creates BOL from SO |
| BOL Type | Picklist | Required | Delivery to Customer / Return from Customer / Other |
| Carrier | Text | Required | Free text — multi-vendor |
| Freight Cost | Currency | Required | Entered at creation time. Replaces freight spreadsheet. Rolls up to SO + YR_Equipment lifetime total. |
| BOL Number | Text | Physical BOL number from paperwork | |
| Carrier Reference / PRO # | Text | Carrier's tracking or PRO number | |
| Ship Date | Date | When freight picked up (known at delivery — entered retroactively) | |
| Delivered Date | Date | Confirmed delivery date | |
| BOL Attachment | File | Signed BOL — attached from Google Drive at time of record creation | |
| Notes | Text area | Anything CS needs to flag |
These give CS a real-time snapshot of where each ramp is and its freight history — mostly auto-populated by BOL automation.
| Field | Type | How 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. |
Entered once on the BOL record — surfaces in two places for reporting.
| Where | What it shows | Use |
|---|---|---|
| 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? |
| Automation | Trigger | Status |
|---|---|---|
| YR1 / YR1b / YR1c / YR1d | Equipment assigned to SO → set Checked Out (all 4 slots) | Live |
| YR2 | Notification of Contract End entered → set Available (all 4 slots) | Live |
| YR2b | Cancellation cleared before pickup → revert to Checked Out | Live |
| YR3 | Monthly Charge SO auto-generation | Live |
| YR4 | 10 days before Pickup Required By → escalate to Customer Hard Date | Live |
| Bills of Lading module | Full movement + freight cost layer | Not Built Yet |
| BOL-A (Delivery auto-update) | Current_SO, In_Service_Date, Last_Move_Date on delivery | Not Built Yet |
| BOL-B (Return auto-update) | Available + location update + Current_SO clear on return | Not Built Yet |
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?