Overview
Trucker Tools provides GPS/Cell-based tracking of loads via the driver’s (smart) phone or in-cab ELD. The Revenova TMS integration with Trucker Tools provides Carrier load tracking and status updates sent from Trucker Tools and received in the TMS.
Trucker Tools is a Load Tracking API service. See other integration information for Trucker Tools Rate and Load Board API Service documentation.
Trucker Tools provides “push” status updates to the TMS via a sites-based web service. Inbound load status packets from Trucker Tools are processed as Platform Events.
Setup
Enter Credentials
Enable the Trucker Tools integration by completing the following steps.
Navigating to TMS Admin,
Select Credentials.
Select the Global Services tab,
Find Trucker Tools in the list and open the card.
Check the Enabled and Receive Updates boxes.
Enter the User ID and Password 1 into the text fields.
Click the Save button when finished.
Valid credentials are required from a Trucker Tools subscription. Trucker Tools provides the Encrypted Customer Account Number. See examples in the table below.
User ID | Password 1 | Password 2 | Customer Number |
---|---|---|---|
"101" | Encrypted Customer Account Number |
Inbound Packet IP Ranges: Any load status post-backs from Trucker Tools that do not originate from this IP mask are rejected as a security feature. Any changes to this range are provided by Revenova.
Remote Site Settings
Upgrading from previous versions of the TMS may have outdated information. Check that the Remote Site Settings for the Trucker Tools integration URL are up to date.
Click the Setup gear icon in the top right corner.
From the drop-down, click Setup.
In the Quick Find Toolbar type Remote Site Settings and click the link.
From the list of remote sites find Trucker Tools and click the Edit link.
Update the Remote Site URL to match the Service URL below:
Service URL: https://api.truckertools.com/loadtrackservice
Test Service URL: https://api.truckertools.com/loadtrackservice
Partner Community Setup
The Trucker Tools integration requires a webhook to send tracking information to the TMS. Create an API Site to accept inbound API traffic.
Create a Salesforce Site for API Guest User Access.
Set the public access for the Site.
Activate and Publish the Site.
Enter the API URL into the field for Inbound API Community URL under TMS Admin, in the Configuration section.
Add the following extension to the end of the URL to match the example below: /services/apexrest/rtms/tmslistener?org=[18-character org id]&source=TruckerTools&pwd=[credentials code field]
Send the URL, customer company name, and contact information to integrations@truckertools.com.
{API Community URL}/services/apexrest/rtms/tmslistener?org=[18-character org id]&source=TruckerTools&pwd=[credentials code field]
Example: https://revenova.my.site.com/api/services/apexrest/rtms/tmslistener?org=00D180000008oA9EAI&source=TruckerTools&pwd=4wGFDgnT950Ovg1
TMS Admin
Configuration
The following field may be set under TMS Admin, Configuration to use as default tracking settings when using Trucker Tools.
Tracking Update frequency (Minutes): The number of minutes between inbound load location updates from Trucker Tools. The TMS does not process load location updates less than the entered value since the last load location update.
Use Platform Events For: Confirm the check box for TruckerTools is checked.
Transportation Profile
It is possible to set a default Tracking Provider for each Carrier on their Transportation Profile.
Tracking Provider: The default selection in the Load Tracking Admin LWC of tracking information for a load.
The Trucker Tools integration supports multiple stops for the same Account location. Tracking notifications indicated Stops as Picked Up or Delivered.
Carrier Load Tracking
Carrier load tracking is initiated on the Carrier Banner LWC. Click the antenna button to open the Load Tracking Administration LWC to begin tracking the load.
Start and stop a tracking session by clicking the On and Off buttons. Active tracking sessions may be updated by changing load information and then click Update Tracking.
Load Field Set TMS35, Transportation Profile TMS7, and Transportation Profile TMS8 can be adjusted to display additional fields in the Load Tracking Administration modal. See the Field Set Summary for more information.
Start Load Tracking
The start new load tracking call sends load, Carrier, and stop information to Trucker Tools. The Tracking Number field is returned. The Start Time field on the Load Tracking Administration modal defaults to the appointment time of the pickup stop.
If an org contains multiple loads with the same Load Number, the tracking sessions with Trucker Tools may provide incorrect data. When a Start Load Tracking request is sent for a Load Number that already exists in the Trucker Tools system, the existing load is overridden with the most recent load information.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
Start new load tracking session | Create Load Track | POST | 200: Success 5 possible errors |
Sample Start Load Tracking JSON Request Payload
{
"partnerId": 0,
"loadTrackExternalId": "string",
"accountId": "stringst",
"loadNumber": "string",
"dispatcherId": "string",
"dispatcherEmail": "string",
"dispatcherPhoneNumber": "string",
"textmessage": "string",
"loadType": "string",
"trailerType": "string",
"revenueType": "string",
"autoStartTime": "hh:mm",
"driverCell": "string",
"trailerNumber": "string",
"truckNumber": "string",
"driverName": "string",
"driverType": "companyDriver",
"driverComments": "string",
"loadNotes": "string",
"isTeamLoad": false,
"carrierDispatcherEmail": "user@example.com",
"carrier": {
"CompanyName": "string",
"docketNumber": "string",
"contactName": "string",
"contactPhone": "string",
"contactPhoneExt": "string",
"contactEmail": "user@example.com"
},
"broker": {
"companyName": "string",
"docketNumber": "MC456123",
"contactName": "string",
"contactPhone": "string",
"contactPhoneExt": "string",
"contactEmail": "string"
},
"shipper": {
"loadNumber": "string",
"name": "string",
"shipperId": "string",
"emails": "string",
"emailInterval": 0
},
"metadata": [
{
"name": "string",
"value": "string"
}
],
"stops": [
{
"orderNumber": 1,
"address": "string",
"city": "string",
"state": "VA",
"zipcode": "20148",
"lat": 0,
"lon": 0,
"datetime": "10/14/2021 12:14:45 EST",
"geofenceRadius": 0,
"notes": "string",
"stopExternalId": "string",
"metadata": [
{
"name": "string",
"value": "string"
}
]
}
],
"actions": [
{
"name": "string",
"driverInput": false,
"options": [
{
"name": "string"
}
],
"required": false,
"isLastAction": true,
"item": "trailer",
"id": "string"
}
]
}
The Stop Appointment Time fields are sent as part of the start tracking call, if they are available. If not available, the Shipping/Receiving Hours are sent.
Error - Carrier Banner: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Service Unavailable.
This error means that the Trucker Tools webservice is down. This error is resolved when Trucker Tools webservice is restored.
Sample Start Load Tracking JSON Response Payload
{
"status": true,
"timeStamp": "string",
"loadId": 0,
"mapLink": "string",
"statusPageLink": "string",
"detailsLink": "string",
"errorCode": 101,
"errorMessage": "Account not found"
}
TMS Field Updates
Object | Field | Type | Value | Trucker Tools Field |
---|---|---|---|---|
Load | Tracking Number | Text(40) | Trucker Tools provided tracking number. | loadId |
Load | Tracking Provider | Text(40) | "Trucker Tools" | Not sent by Trucker Tools |
Stop | Carrier Status Comments | Text(255) | Load Tracking Started. | Not sent by Trucker Tools |
Stop | Carrier Status as of | Date/Time | Date/Time now | Not sent by Trucker Tools |
See Trucker Tools Create Load Track documentation here.
Update Load Tracking
The update tracking call sends new load and stop information to Trucker Tools. See the table below for unacceptable field changes.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
Update Tracking | Create Load Track | PUT | 200: Success, 5 possible errors |
When fields require changing from the Unacceptable table below, stop the current tracking session. Make any necessary changes in the TMS, and then begin a new tracking session.
Unacceptable Changes
TMS Field | Type | Trucker Tools Field |
---|---|---|
Load Sequence Number | Text(40) | loadTrackExternalId |
TMS Admin, Credentials | User ID, "101" | partnerId |
TMS Admin, Credentials | Encrypted Customer Account Number | accountId |
Sample JSON Update Tracking Request Payload.
{
"partnerId": 0,
"loadTrackExternalId": "string",
"accountId": "stringst",
"loadNumber": "string",
"dispatcherId": "string",
"dispatcherEmail": "string",
"dispatcherPhoneNumber": "string",
"textmessage": "string",
"loadType": "string",
"trailerType": "string",
"revenueType": "string",
"autoStartTime": "hh:mm",
"driverCell": "string",
"trailerNumber": "string",
"truckNumber": "string",
"driverName": "string",
"driverType": "companyDriver",
"driverComments": "string",
"loadNotes": "string",
"isTeamLoad": false,
"carrierDispatcherEmail": "user@example.com",
"carrier": {
"CompanyName": "string",
"docketNumber": "string",
"contactName": "string",
"contactPhone": "string",
"contactPhoneExt": "string",
"contactEmail": "user@example.com"
},
"broker": {
"companyName": "string",
"docketNumber": "MC456123",
"contactName": "string",
"contactPhone": "string",
"contactPhoneExt": "string",
"contactEmail": "string"
},
"shipper": {
"loadNumber": "string",
"name": "string",
"shipperId": "string",
"emails": "string",
"emailInterval": 0
},
"metadata": [
{
"name": "string",
"value": "string"
}
],
"stops": [
{
"orderNumber": 1,
"address": "string",
"city": "string",
"state": "VA",
"zipcode": "20148",
"lat": 0,
"lon": 0,
"datetime": "10/14/2021 12:14:45 EST",
"geofenceRadius": 0,
"notes": "string",
"stopExternalId": "string",
"metadata": [
{
"name": "string",
"value": "string"
}
]
}
],
"actions": [
{
"name": "string",
"driverInput": false,
"options": [
{
"name": "string"
}
],
"required": false,
"isLastAction": true,
"item": "trailer",
"id": "string"
}
]
}
Sample JSON Update Tracking Response Payload.
{
"status": true,
"timeStamp": "string",
"loadId": 0,
"mapLink": "string",
"statusPageLink": "string",
"detailsLink": "string",
"errorCode": 101,
"errorMessage": "Account not found"
}
TMS Field Updates
Object | Field | Type | Value | Trucker Tools Field |
---|---|---|---|---|
Stop | Carrier Status Comments | Text(255) | Load Tracking Updated. | Not received by Trucker Tools |
Stop | Carrier Status as of | Date/Time | Date/Time now | Not received by Trucker Tools |
See Trucker Tools Update Existing Load Track documentation here.
Stop Load Tracking
The stop load tracking call sends a request to Trucker Tools to end the current tracking session. When the cancel request is received, the Load Track system cancels the Load Track if the driver has not started the session.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
End load tracking session | Cancel Load Track | POST | 200: Success, 4 possible errors |
Sample JSON End Tracking Session Request Payload
{
"partnerId": 0,
"loadTrackExternalId": 0,
"accountId": "stringst"
}
Sample JSON Response Payload.
{
"status": false,
"timeStamp": "string",
"loadId": 0,
"errorCode": 100,
"errorMessage": "Invalid account"
}
TMS Field Updates
Object | Field | Type | Trucker Tools Field |
---|---|---|---|
Load | Tracking Number | Text(255) (no value) | loadId |
Load | Tracking Provider | Date/Time (no value) | Not sent by Trucker Tools |
Stop | Carrier Status Comments | Text(255) ("Load Tracking Stopped") | Not sent by Trucker Tools |
Stop | Carrier Status as of | Date/Time | Not sent by Trucker Tools |
See Trucker Tools Cancel Load Track documentation here.
Tracking Updates from Trucker Tools (PUSH into Revenova)
Location Update
The update load tracking operation receives the latest location data from Trucker Tools.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
Location Update | Location Event Webhook | POST | 200: Success, 400: Failure |
Sample JSON Location Update Payload
{
"eventType": "LocationUpdate",
"partnerId": 1,
"accountId": "iqFionGLn7b6LAkFt9BEhQ==",
"driverPhone": "2025551234",
"loadNumber": "12345",
"loadTrackExternalId": "98765"
}
TMS Field Updates
Object | TMS Field | Type | Trucker Tools Field |
---|---|---|---|
Load | Last Reported Geolocation | Geolocation | lat |
Load | Last Reported Geolocation | Geolocation | lon |
Load | Last Reported City | Text(40) | city |
Load | Last Reported State/Province | Picklist | state |
Load | Last Reported Country | Picklist | country |
Load | Last Tracking Update | Date/Time | timestamp |
Load | Last Tracking Update Source | Text(50) ('Trucker Tools') | Not sent by Trucker Tools |
Load | Load Status Comments | Text(255) | (eventType) LocationUpdate |
Stop | Carrier Status as of | Date/Time | timestamp |
Example Load Tracking Log LWC with Trucker Tools tracking data.
See Trucker Tools Location Updates documentation here.
Status Update
The status update operation receives the latest stop arrival and departure information from Trucker Tools.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
Status Update | Status Event Webhook | POST | 200: Success, 400:Failure |
Sample JSON Status Update Payload
{
"eventType": "StatusUpdate",
"partnerId": 1,
"accountId": "iqFionGLn7b6LAkFt9BEhQ==",
"driverPhone": "2025551234",
"loadNumber": "12345",
"loadTrackExternalId": "98765"
}
TMS Field Updates
Object | TMS Field | Type | Trucker Tools Field |
---|---|---|---|
Load | Last Reported City (Shipping City) | Text(255) | Not sent by Trucker Tools |
Load | Last Reported State (Shipping State) | Text(255) | Not sent by Trucker Tools |
Load | Load Status Comments | Text(255) | Arrived at Pickup/Arrived at Dropoff, Stop Location Name; Departed Pickup, Stop Location Name |
Load | Last Tracking Update | Date/Time | Not sent by Trucker Tools |
Load | Last Tracking Update Source | Text(50) (‘Trucker Tools’) | Not sent by Trucker Tools |
Stop | Arrival Date | Date | timestamp |
Stop | Arrival Time | Text(5) | timestamp |
Stop | Departure Date | Arrival Time | timestamp |
Stop | Departure Time | Text(5) | timestamp |
Stop | Carrier Status as of | Date/Time | Not sent by Trucker Tools |
Stop | Carrier Status Comments | Text(255) | (eventType) StatusUpdate |
Stop | Stop Status | Picklist (Arrived/Departed) | (eventType) StatusUpdate |
The Last Reported City and Last Reported State fields are set to the Stop location fields by the TMS. This event is triggered when the Status Update even is received from Trucker Tools.
See Trucker Tools Event Status documentation here.
Document Event
The document event operation receives driver uploaded documents into the TMS.
TMS Operation | Trucker Tools Endpoint | Request Type | Response |
---|---|---|---|
Receive Document | Document Event Webhook | POST | 200: Success 400:Failure |
Sample JSON Document Events Payload
{
"eventType": "DocumentUpdate",
"partnerId": 1,
"accountId": "iqFionGLn7b6LAkFt9BEhQ==",
"driverPhone": "2025551234",
"loadNumber": "12345",
"loadTrackExternalId": "98765",
"latestLocation": {
"accuracy": 85.5,
"city": "Washington",
"country": "USA",
"lat": "38.880029218784",
"lon": "-77.00543319213574",
"state": "DC",
"timestamp": "1/15/2025 13:45 EST",
"timestampSec": "1/15/2025 13:45:30 EST"
},
"latestStatus": {
"name": "Not Started",
"code": "NS",
"timestamp": "1/15/2025 13:45 EST",
"timestampSec": "1/15/2025 13:45:30 EST"
},
"document": {
"timestamp": "1/15/2025 13:45:30 EST",
"type": "Bill of Ladings",
"url": "https://assets.truckertools.com/images/tt-scan-docs/scanImageuploads/filename.jpg",
"location": {
"accuracy": 85.5,
"city": "Washington",
"state": "DC",
"country": "USA",
"lat": "38.880029218784",
"lon": "-77.00543319213574"
}
}
}
TMS Field Updates
Object | TMS Field | Type | Trucker Tools Field |
---|---|---|---|
Load | url |
See Trucker Tools Document Events documentation here.
API Field Reference
The following table relates TMS data fields with the equivalent Trucker Tools fields used in API calls.
Object | Field | Type | Trucker Tools Field |
---|---|---|---|
TMS Admin, Credentials | *User ID, “101” | User ID | partnerId |
TMS Admin, Credentials | *Encrypted Customer Account Number | Password1 provided by Trucker Tools | accountId |
Account ELD | Geofence Radius | Number(10, 0) | geofenceRadius (miles) |
Carrier Service | Status Contact | Contact | dispatcherId |
Carrier Service | Status Contact | carrierDispatcherEmail | |
Load | *Load Sequence Number | Auto Sequence | loadTrackExternalId |
Load | Load Number | Text(80) | loadNumber |
Load | Container/Trailer Number | Text(40) | trailerNumber |
Load | Driver Phone | Phone | driverPhone |
Load | Last Reported Geolocation | Geolocation | lat |
Load | Last Reported Geolocation | Geolocation | lon |
Load | Last Reported City | Text(40) | city |
Load | Last Reported State/Province | Picklist | state |
Load | Last Tracking Update | Date/Time | Not sent by Trucker Tools |
Load | Last Tracking Update Source | Text(50) ("Trucker Tools") | Not sent by Trucker Tools |
Load | Load Status Comments | Text(255) | (eventType) LocationUpdate |
Load Tracking Administration LWC | Start Day/Start Time | Date/Time (yyyy-MM-dd HH:mm:ss) | autoStartTime |
Load | Tracking Number | Text(40) | loadId |
Load | Tracking Provider | Text(40) "Trucker Tools" | Not sent by Trucker Tools |
Load | Tractor Number | Text(40) | truckNumber |
Stop | Address (Shipping Street) | Text(255) | address |
Stop | *Address (Shipping City) | Text(255) | city |
Stop | *Address (Shipping State) | Text(255) | state |
Stop | *Address (Shipping Postal Code) | Text(255) | zipcode |
Stop | *Appointment Time | Text(11) | datetime |
Stop | Arrival Date | Date | (latestStatus) timestamp |
Stop | Arrival Time | Text(5) | (latestStatus) timestamp |
Stop | Carrier Status as of | Date/Time | Not sent by Trucker Tools |
Stop | Carrier Status Comments | Text(255) | (eventType) StatusUpdate |
Stop | Departure Date | Date | (latestStatus) timestamp |
Stop | Departure Time | Text(5) | (latestStatus) timestamp |
Stop | Geolocation | Geolocation | lat |
Stop | Geolocation | Geolocation | lon |
Stop | *Number | Number(3,0) | orderNumber |
Stop | *Shipping/Receiving Hours | Text(11) | datetime |
Stop | *Shipping/Receiving Hours | Text(11) | datetime |
Stop | Stop | Text(80) | stopExternalId |
Stop | Stop Status | Picklist (Arrived/Departed) | (actions) name |
Transportation Profile | Name | Text(80) | CompanyName |
Transportation Profile | *MC/MX/FF Number | Text(20) | docketNumber |
* Fields marked with an asterisk are required.
Trucker Tools Error Codes
The following table contains the codes sent by Trucker Tools that can appear in the TMS user interface.
Error Code | API Call | Error Message |
---|---|---|
101 | Create Load Track/Update Load Track | Account not found |
104 | Create Load Track/Update Load Track | Partner not found |
105 | Create Load Track/Update Load Track | Load Track not found |
301 | Create Load Track/Update Load Track | Invalid Parameters |
401 | Create Load Track/Update Load Track | Can't update Load Track as it is already started |
100 | Cancel Load Track | Invalid account |
200 | Cancel Load Track | An internal system error occured |
301 | Cancel Load Track | The external load ID is required |
402 | Cancel Load Track | Cannot cancel the Load Track as the driver has started the Track |