Let customers track shipments on the portal¶
Guide information
Requirements
This tutorial requires the installation of the following applications/modules:
Freight Forwarder Management (installs Logistics Shipment and Logistics Routes Integration automatically)
Every Documentation officer knows the pattern: the same customer calls or emails three times a week asking whether the cargo has sailed or whether the ETA has changed. Each of those questions interrupts a booking or a document task that has nothing to do with them. The customer portal lets Nhat Long Footwear answer those questions itself, in real time, from data Ops already enters on the shipment - Documentation only steps in for what the portal cannot show, such as a written confirmation or a reason for a delay. If a term below is new to you, see the Freight forwarding glossary.
Running scenario: Hai Long Logistics ships 2 x 40FT HC of footwear for Nhat Long Footwear, Hai Phong Port to Port of Los Angeles, carrier ONE Line, Incoterm CFR (Port of Los Angeles), Freight Prepaid. The shipment (SHP/26xx/000nn) is In Transit: booking ONEYBK204581 was rolled over from sailing ONE COMMITMENT / 026W to ONE COMPETENCE / 027W (see Handle rolled-over and not-loaded containers), so the leg’s ETD/ETA already read 2026-11-12 / 2026-12-09, and ATD was set to 2026-11-13 09:00 when the leg was marked Start Transit. Hoa (Documentation) grants the portal account and is the contact Nhat Long Footwear reaches out to for anything the portal does not cover.
Before you start¶
A contact record for Mr. Tran Van Hai (Import-Export Manager) exists under Nhat Long Footwear in Contacts, with a valid email address.
The shipment’s Customer field is set to Nhat Long Footwear - this is what the portal filters on, not the contact you grant access to (see Book carrier space for a shipment leg for how the shipment is created and confirmed).
Granting portal access is standard Odoo, not a freight permission: any internal user who can edit a Contact record can do it, whether or not they belong to a freight group.
Decide who gets a portal account¶
Option |
Use when |
What changes |
|---|---|---|
One contact (for example Mr. Tran Van Hai only) |
The customer has a single logistics contact, as with most SME customers like Nhat Long Footwear |
One portal account to manage; simplest to track |
Several contacts (for example both Import-Export and Purchasing) |
The customer is a larger organization where more than one department needs to see the same shipments |
Every account sees the same set of shipments - the portal filters on the company, not on which contact you granted access to, so adding more contacts needs no extra setup |
Grant access only to contacts the customer has authorized to use the portal. Because access is scoped to the company rather than an individual contact’s shipments, confirm the company and contact before creating the account; add another contact only after the customer requests or approves it.
Step 1: Grant the customer a portal account¶
Without a portal account, every “where is my shipment” question still has to go through Documentation by phone or email.
Go to , open the contact record for Mr. Tran Van Hai, click the gear icon Action, then Grant portal access. The Portal Access Management dialog lists the contact with an editable Email column and a status icon next to it.
Fill in:
Email: nhatlong.customer@example.viindoo.com.
Click Grant Access on the contact’s row, then Close.
After you click Grant Access:
A portal user is created and an invitation email is sent to set a password.
The row’s button changes from Grant Access to Revoke Access / Re-Invite.
Warning
A portal user sees every shipment where their own company is the Customer, or where that company was added as a follower - not only shipments naming this one contact. If Nhat Long Footwear was ever added as a follower on a shipment for a different customer, granting Mr. Tran Van Hai access also gives him a link into that other customer’s shipment; remove the follower first. There is no way to scope a portal account to a single shipment or a single department.
Tip
Step 1 is done when: reopening Grant portal access shows Revoke Access on Mr. Tran Van Hai’s row, and Nhat Long Footwear confirms they received the invitation email.
Step 2: Customer opens the shipment list¶
This is the one address the customer needs to remember, instead of a separate link for every shipment.
The customer signs in and goes to /my/logistics/shipments (or the My Logistics Shipments
tile on /my). The list shows every shipment where Nhat Long Footwear is the Customer, with
Shipment #, ETD, ETA, ATD, ATA and Status, sorted by ETD by default.
Warning
The current list misaligns dates and status with their column headings. Use it to find the Shipment #, then open the detail page to read the dates and status correctly.
Note
The list only sorts by ETD or Shipment # - there is no free-text search box, so the customer cannot type a container or booking number to filter (see Known limitations below).
Tip
Step 2 is done when: the customer finds SHP/2610/00001 among their company’s shipments, with no shipment belonging to another company. In this training example, the separate mixed-container shipment SHP/2610/00002 is also visible.
Step 3: Read the shipment detail page¶
The list is only for finding the right shipment - the detail page is where the customer gets data accurate enough to act on without calling Documentation.
The customer clicks the Shipment # to open the detail page.
Shipment Map, Shipment QR Code and Shipment Information sit at the top. Shipment Information lists Shipment #, Status, Pickup Address, Drop-off Address, ETD and ETA - it does not show ATD or ATA, so this block alone cannot tell the customer whether the vessel has actually sailed.
See also
The map pins depend on the ports having coordinates configured - see the carrier and location records in Freight Forwarding configuration (add missing records first).
Leg Details is where ETD/ETA (planned) and ATD/ATA (actual) are told apart, one row per transport leg. For this shipment: ETD 2026-11-12, ETA 2026-12-09, ATD 2026-11-13 09:00, ATA still blank - the vessel has left (ATD is set) but has not yet arrived (ATA is empty).
Containers lists both Container 40FT HC units -
ONEU4567895(sealOL2604187) andONEU4568124(sealOL2604188) - each with a weight of 10,800 kg. The Packages card below lists the carton packages loaded into them.Note
The Qty column of Containers shows the quantity of the whole cargo line in the container, not the part packed in it: both rows read 1,200 although each container holds 600 cartons (see Known limitations).
The Packages table also shows 43,200 kg although the approved shipment gross weight is 21,600 kg. Use the approved SI for package counts and gross weight; ask Documentation to resolve the difference before relying on these portal totals.
Tracking Timeline only shows milestones Documentation has published: for this shipment, Booking Confirmed, Departed and ETA Updated - see the shipment tracking history (record the verified milestone and its date, and check the recipient before notifying the customer) for how those are logged. Internal notes are never published here.
Tip
Step 3 is done when: the customer can state the ATD (2026-11-13 09:00) separately from the ETD (2026-11-12), reads the new ETA 2026-12-09 rather than the original 2026-12-01, and understands the blank ATA as “not arrived yet”.
Step 4: Ask Documentation when the portal is not enough¶
The portal does not replace the relationship with Documentation, especially when the customer needs something in writing or a reason for a specific delay.
At the bottom of the detail page, the customer can scroll to Communication History and post a comment directly, in addition to calling or messaging Documentation as before.
Tip
Step 4 is done when: the customer gets an answer - through the portal comment or through the usual channel - for whatever the portal itself could not tell them.
Known limitations¶
Step |
What Viindoo does today |
What you do instead |
|---|---|---|
Step 2 (shipment list) |
There is no free-text search box on |
Use the list only to locate the right Shipment #, then open the detail page to confirm container or booking numbers |
Step 3 (Containers card) |
Qty on each container row shows the quantity of the whole cargo line, so a cargo line split across two containers shows its full quantity on both rows |
Tell the customer to read the per-container weight, or the Packing List, for the split - not Qty |
Troubleshooting¶
The customer sees “No shipments found for your account.”¶
Symptom: /my/logistics/shipments shows exactly that message, even though Documentation
already granted portal access.
Cause: the shipment’s Customer field is not Nhat Long Footwear (or one of its child
companies), or the contact who was granted access is not child_of the company set on the
shipment - the access rule then returns no records.
Fix:
Open the shipment internally and confirm Customer reads Nhat Long Footwear.
Confirm the contact granted portal access is Nhat Long Footwear itself, or a contact under it.
An old shipment link redirects to “My Account” with no message¶
Symptom: clicking an /my/logistics/shipment/<id> link from an earlier email sends the
customer straight to /my with no error shown.
Cause: an access or missing-record error is caught silently and the customer is redirected without a message - usually because the shipment has since been archived, or the access token in the old link is no longer valid.
Fix: send the customer a fresh link from /my/logistics/shipments; if the problem
persists, check whether the shipment is still active.