Let customers track shipments on the portal

Guide information

Audience: Documentation / Customer Service, and the customer’s own logistics contact
Time required: About 10 minutes to grant the first portal account; under 2 minutes for the customer to check a shipment afterwards
Outcome: The customer can see shipment status, ETD/ETA/ATD/ATA and the tracking timeline on their own, and only asks Documentation for what the portal genuinely cannot answer

Requirements

This tutorial requires the installation of the following applications/modules:

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 Contacts, 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.

Portal Access Management for Tran Van Hai after access was granted: customer email, Revoke Access and Re-Invite; no internal user access.

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.

Customer portal shipment information for SHP/2610/00001: In Transit, ETD12 November and ETA 9 December; the map and QR code link to this shipment.

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).

Portal Leg Details for the main carriage: ETD12 November, ETA 9 December, ATD13 November 09:00 and ATA blank, status In Transit.
  • Containers lists both Container 40FT HC units - ONEU4567895 (seal OL2604187) and ONEU4568124 (seal OL2604188) - 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 /my/logistics/shipments - only sorting by ETD or Shipment #

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:

  1. Open the shipment internally and confirm Customer reads Nhat Long Footwear.

  2. Confirm the contact granted portal access is Nhat Long Footwear itself, or a contact under it.

The Grant Access button does not appear for a contact

Symptom: in the Portal Access Management dialog, the contact’s row shows a red icon instead of the Grant Access button.

Cause: the button only appears once the email is valid and not already used by another user - a red X means the address is invalid, and a crossed-out user icon means it already belongs to a different account.

Fix: correct the Email value directly in the row; the Grant Access button appears once the icon turns green.

See also

Related articles