A successful TMS integration starts with clear ownership of customer, quote, booking and shipment data. Define which fields move between systems, what triggers each update and how failures are resolved. Before go-live, test duplicate prevention, permissions, document access and recovery so your team can trust the operational records it receives.
Define one complete business workflow before mapping every available field.
For a freight forwarder, an initial scope might be:
Approved customer → accepted quote → TMS booking record → shipment updates → customer-facing status
Write down what starts the process, what each system must do and how the team will confirm completion.
For example, “send accepted quotes to the TMS” is incomplete. A usable requirement explains:
VelocityOS describes connections for rates, bookings, tracking and documents on its TMS integration page. The implementation plan should confirm the specific fields, directions and workflows required for your existing TMS.
Assign an authoritative system for each data object and, where necessary, each field. This is the system whose approved value takes precedence.
Ownership does not have to sit entirely in one application. A CRM might own sales contacts, while the TMS or finance system owns billing identifiers and credit status.
| Record | Example ownership arrangement | Rule to agree |
|---|---|---|
| Customer | CRM owns commercial contact details; TMS or finance system owns billing and credit information | Identify ownership field by field and maintain a shared customer mapping |
| Quote | Quoting platform owns versions, pricing and acceptance | Transfer the accepted version and preserve its reference |
| Booking request | Commercial platform initiates the request; TMS owns it after successful creation | Return the TMS identifier and define where later amendments are made |
| Shipment | TMS owns operational shipment details | Send approved updates to connected commercial or customer systems |
| Tracking event | An agreed operational or tracking source supplies each event | Preserve source, timestamp and whether the event is estimated or actual |
| Document | A designated system owns the approved file and its versions | Define whether other systems receive a copy or an access-controlled link |
This is an illustrative ownership model, not a fixed VelocityOS configuration.
Avoid allowing both systems to overwrite the same field without a conflict rule. Otherwise, a stale address or status can replace a newer approved value.
Use the following structure as a starting point. Replace the example systems and owners with your actual setup.
| Data object | Source system | Destination | Update trigger | Validation | Error owner |
|---|---|---|---|---|---|
| Approved customer | CRM or customer master | TMS and commercial platform | Customer approved or an owned field changes | Unique customer reference, legal entity, required address fields and existing mapping | Customer-data owner |
| Published rate | Rate-management system | TMS, where included in scope | Rate approved, amended or withdrawn | Supplier, lane, currency, charge basis, validity and version | Pricing team |
| Accepted quote | Quoting platform | TMS booking workflow | Agreed acceptance or approval event | Accepted version, customer mapping, cargo details, charges, scope and validity | Sales operations |
| Booking reference | TMS | Commercial platform | Booking record successfully created or amended | Match the originating request and return the correct TMS identifier | Integration support |
| Shipment status | TMS | Commercial platform or customer portal | Approved status change or scheduled update | Shipment mapping, permitted status transition, event time and source | Shipment operations |
| Tracking milestone | Agreed tracking source | TMS or visibility workspace | New or corrected event | Shipment/container match, event identity and estimated/actual classification | Visibility support |
| Approved document | Document-owning system | Authorized destination system | Approved upload, revision or withdrawal | Shipment link, document type, version and access permissions | Documentation team |
| Cancellation | Agreed record owner | Connected systems | Authorized cancellation | Current status, linked records and downstream impact | Shipment operations |
The error owner should be a named team with a clear escalation route. Technical support may repair a connection, but pricing or operations must resolve incorrect business data.
Field mapping needs to explain meaning as well as names. Two fields labelled “status” may describe entirely different stages.
For each field, record its source, destination, format, required status, transformation and owner.
Map customer identifiers, legal entities, branches, addresses and contact details. Confirm whether billing and operational contacts are separate.
Do not match customers by company name alone. Similar names, spelling variations and multiple branches can create incorrect links.
Include:
Specify whether a blank field means “unknown,” “not applicable” or “remove the existing value.” These meanings should not be treated as interchangeable.
Map shipment references, event codes, event timestamps and time zones. Keep estimated and actual dates separate.
For documents, include the document identifier, type, version, linked shipment and access classification. A draft bill of lading should not automatically replace an approved document without the agreed review process.
Choose triggers based on business events.
| Trigger approach | Suitable use | Implementation check |
|---|---|---|
| Event notification or webhook | Accepted quotes, approved bookings and status changes | Can repeated or missed notifications be handled safely? |
| Scheduled polling | Systems that expose updates through periodic API requests | How are changed records identified without gaps? |
| Scheduled batch transfer | Agreed bulk updates with less urgent timing | How are partial failures reported and corrected? |
| Manual approval | Sensitive changes requiring review | Who can approve the transfer, and is the action recorded? |
Agree on expected update timing for each object. A booking request may need prompt processing, while a periodic reference-data update may have a different requirement.
Keep the time the business event occurred separate from the time the integration processed it.
Duplicate prevention should be designed before enabling automatic creation.
Use stable identifiers that include enough context to distinguish the source system, organization and record. Maintain a mapping between the source identifier and the destination identifier.
For example:
Commercial booking request BR-2087 → TMS record TMS-64102
If the same request is delivered again, the integration should recognize the existing relationship instead of creating another booking.
Important controls include:
The duplicate key must reflect the business action. A customer identifier alone cannot distinguish several legitimate bookings for the same customer.
A failed transfer should become visible work with an owner, rather than disappearing into a log.
| Failure | Recommended response |
|---|---|
| Temporary service interruption | Retry within agreed limits, with increasing intervals |
| Invalid or missing data | Hold the affected record for correction and identify the failed field |
| Expired credentials or denied permission | Alert integration support and restore the approved access |
| Destination may have saved the record, but confirmation was lost | Check the stable request reference before creating anything again |
| Some records succeed and others fail | Record individual outcomes and reprocess only the unresolved work |
| An older update arrives after a newer one | Apply the agreed version rules and prevent stale data from overwriting current information |
Retries are appropriate for some temporary failures, but not every error. They also need to avoid repeating an action that already succeeded. Microsoft’s retry-pattern guidance explains these distinctions.
Give operators a practical error view showing the affected record, failure reason, last attempt, owner and next action. Keep sensitive data and credentials out of diagnostic messages.
This is a hypothetical implementation example, not a description of a specific deployed connector.
The team must also distinguish record creation from carrier confirmation. A booking record in the TMS does not, by itself, confirm space with the carrier.
Treat integration access and user access as separate responsibilities.
An integration account should have only the access required for its approved workflow. The destination system must still enforce which users and customers can see or change the received information.
Define:
Test access using actual role combinations. A successful document transfer is not sufficient if the file becomes visible to the wrong customer.
If documents are shared by link, confirm that opening the link requires the appropriate authorization. Avoid treating possession of a URL as proof of permission.
Agree on expected results before running the tests.
| Test | Required outcome |
|---|---|
| Customer creation and update | Correct destination record, branch and approved field values |
| Accepted quote transfer | Correct version, prices, currencies, cargo details and exclusions |
| Repeated creation request | One intended destination record |
| Concurrent duplicate requests | Duplicate prevention still works |
| Lost acknowledgement | Existing destination record is identified safely |
| Invalid mandatory field | Record is held with a clear correction route |
| Older update delivered late | Current data is not overwritten incorrectly |
| Partial batch failure | Successful records remain identified; unresolved records can be recovered |
| Permissions | Unauthorized users cannot access restricted records or documents |
| Document revision | Correct version and access rules are preserved |
| Cancellation | Authorized change reaches the required systems with a traceable history |
| Service interruption and recovery | Pending work is recovered without unexplained gaps or duplicates |
| Expected workload | Processing meets agreed timing at normal and peak volumes |
| Reconciliation | Source and destination records agree on the fields and outcomes that matter |
Reconciliation should compare more than record counts. The counts can match while prices, statuses or customer associations are wrong.
Before enabling production transfers:
The recovery plan should explain how to pause processing, preserve pending work and reconcile records already created. Turning off a connection does not undo bookings, documents or other actions that have already occurred.
After launch, review failed transfers, processing delays, duplicate-prevention events and reconciliation differences. Keep this review active until the agreed acceptance conditions are met.
VelocityOS documents synchronization options across commercial and operational data. Use the overview of what Velocity can sync to identify candidate objects, then confirm the required mappings and connector behaviour with the implementation team.
A clear implementation scope should specify the systems involved, supported objects, direction of updates, validation rules, failure ownership and acceptance tests.
Ownership can be divided by field. The CRM may own sales contacts while the TMS or finance system owns billing information. Each shared field needs one agreed authoritative source.
No. Bidirectional integration means information can move in both directions. Individual objects and fields still need explicit ownership and update rules.
Company names alone are not reliable identifiers. Use approved customer references and a maintained mapping between systems, with manual review for ambiguous matches.
No. Temporary connection failures may be retried, while invalid data or permission problems usually need correction. Uncertain outcomes should be checked before repeating a creation action.
Not necessarily. Define which open records and historical information are needed for operations, reporting and customer access. Validate the selected migration scope before launch.
The timeline depends on connector availability, data quality, custom fields, permissions and testing requirements. Set the schedule after reviewing the mapping and acceptance criteria.