Skip to content
Home » FTM x DAT Integration

FTM x DAT Integration

🔗 Load Board Integration

Post Loads to DAT
Without Leaving Salesforce.

FTM’s DAT load board integration lets brokers and shippers post, update, and delete DAT load board listings directly from a Salesforce Load record, and lets carriers search DAT for available loads and create FTM records instantly. No tab switching. No duplicate entry.

Audience

Who This Integration Is For

🏢

Brokers & Shippers

Post loads to the DAT load board the moment they’re ready, update when details change, and remove when covered. All from the FTM Load record in Salesforce. No re-entering data.

🚛

Carriers & Owner-Operators

Search DAT for loads that match your drivers’ equipment, location, and rate, then create an FTM Load record in one click.

📋

Dispatchers

Manage the full DAT lifecycle and carrier load search from a single screen, without ever leaving Salesforce.

Capabilities

What the DAT Load Board Integration Does

Two complete workflows built into FTM: one for brokers posting loads to DAT’s freight marketplace, one for carriers searching DAT loads. Both run entirely inside Salesforce.

DAT load board integration for brokers - post, update, delete loads from FTM Salesforce Workflow A: Brokers & Shippers – Post / Update / Delete a load to the DAT load board from an FTM Load record
📤

Post loads instantly

Click Post Load on any Load record and it goes live on DAT. The Posting ID and Shipment ID are saved back automatically.

✏️

Update when things change

Pickup window shift or rate change? Update Load syncs the DAT posting in real time. No re-entering data.

🗑️

Delete when covered

Delete Load pulls the posting from DAT. Buttons disappear automatically so there’s no confusion about status.

📝

Full audit trail

Every post, update, and delete creates a completed Salesforce Task on the Load, timestamped and visible to the whole team.

DAT load board integration - Post, Update, Delete buttons on FTM Load record in SalesforcePost, Update, Delete buttons on the Load record
DAT load board integration posting confirmation logged as a Salesforce TaskPosting confirmation logged as a Task
DAT load board integration for carriers - search DAT loads for driver and create FTM Salesforce load Workflow B: Search the DAT load board for a driver/truck and create an FTM Load record
🔍

Search by driver profile

FTM uses each driver’s equipment type, home location, max deadhead miles, and minimum rate per mile to query DAT automatically.

Smart filtering built in

Results filter by rate per mile, equipment match, and actual drive distance via Google Maps. Rejected loads show a reason.

Create a load in one click

Select a load and click Create Load in Salesforce. FTM creates a pre-filled Load record with origin, destination, equipment, and weight.

📅

7-day search window

Covers loads with pickup windows from today through the next 7 days, always current and relevant.

DAT load board integration search results showing accepted and rejected loads in SalesforceResults with accepted and rejected loads
Creating an FTM Salesforce Load from a DAT load board search resultCreating an FTM Load from a selected result
Both workflows available. You can use Load Posting (Workflow A), Load Search (Workflow B), or both, depending on whether you’re a broker, carrier, or hybrid operation.

Setup

How to Activate the DAT Load Board Integration

Approximately 20 minutes. Requires your DAT account credentials and a Salesforce admin.

1

Get your DAT credentials

Log into your DAT account and locate your organization login credentials and Partner ID. Contact your DAT account manager if you don’t have the Partner ID, or email [email protected] and we’ll help. The DAT load board integration requires DAT Power or a qualifying DAT One plan with API access.

2

Send credentials to the FTM team

Email [email protected] with your DAT organization username and password. The FTM team stores them securely in a Salesforce Custom Setting and confirms when the connection is live. This is a one-time setup and credentials are never stored in plain text.

3

Set up driver and truck profiles (carriers only)

For carrier load search, each Driver or Truck record needs a city or zip code, equipment preference, max deadhead miles, and minimum rate per mile. Go to the Fleet module and complete these fields for any driver you want to use with DAT.

4

Test in sandbox first

FTM activates the integration in your sandbox before going live. Test by opening a Load record and clicking Post Load, then confirm the posting appears in your DAT account.

5

Go live

Once sandbox testing passes, the FTM team activates the production connection. Post Load, Update Load, Delete Load, and Search Loads become available to all users with the appropriate profile.

💡
Need hands-on help? The FTM implementation team can handle the full DAT setup, including driver profile configuration and sandbox testing, as part of an onboarding engagement. View Implementation Packages

Day-to-Day Usage

Using the Integration

🏢 Posting a Load (Brokers & Shippers)
Open a Load record in FTM.
Click Post Load. FTM posts to DAT and saves the Posting ID and Shipment ID back to the record.
A Task is created automatically confirming the posting with a timestamp.
To update: change fields on the Load and click Update Load. DAT reflects the change in real time.
To remove: click Delete Load. The posting is pulled from DAT and the action buttons disappear.
Note: Delete Load only removes the DAT posting. It does not delete the FTM Load record or any data. Your load history stays fully intact.
🚛 Searching for Loads (Carriers)
Open a Driver or Truck record in FTM.
Click Search Loads. FTM queries DAT using the driver’s equipment, location, deadhead limit, and minimum rate.
Review results. Accepted loads appear with full details. Rejected loads show a reason (rate too low, equipment mismatch, or distance too far).
Select a load and click Create Selected Load in Salesforce.
A new FTM Load is created pre-filled with origin, destination, equipment, pickup date, and DAT IDs.

Questions

Frequently Asked Questions

Does this work with DAT One, DAT Power, or both?

FTM connects to DAT’s Posting API, which is available on DAT Power and qualifying DAT One plans. Contact your DAT account manager to confirm your plan includes API access, or ask the FTM team at [email protected].

Do I need a DAT developer account to set this up?

No. You need an active DAT subscription with API access enabled and your organization credentials. The FTM team handles the technical configuration on your behalf. No code required from your side.

Can I post to both DAT and Truckstop from the same Load?

Yes. FTM supports both DAT and Truckstop integrations independently. You can post to one or both load boards from the same Load record. See the Truckstop integration page for details.

What happens if I click Post Load twice?

The first click creates the posting and saves the Posting ID. Clicking again updates the existing posting. It won’t create a duplicate. Once a Posting ID exists, the system always updates rather than re-posts.

What if a driver’s profile is incomplete?

Search Loads will show a validation message if any required fields are missing: city or zip code, equipment preference, max deadhead miles, minimum rate per mile, or Active status. Complete these on the Driver/Truck record before searching.

How far out does carrier load search look?

The search covers loads with pickup windows from today through the next 7 days. Contact [email protected] if you need a wider window.

Is my DAT login stored securely in Salesforce?

Yes. Credentials are stored in a Salesforce Hierarchy Custom Setting, access-controlled and not visible to standard users. Tokens retrieved during API calls are cached for 28 minutes then auto-expire. They are never written to any record or log.

Does the integration sync DAT status back to FTM automatically?

Not automatically. The current integration covers load posting management and carrier search. Status changes in DAT are not pushed back to FTM in real time. Update the FTM Load status manually after confirmation.

See DAT in FTM live

Book a 15-minute demo and we’ll walk through load posting and carrier search in a live org.

Book a Demo

Already using FTM?

Get help connecting DAT to your live org or troubleshoot an existing setup.

Email Support
⚙ Developer & Admin Reference For Salesforce Admins & Developers

Prerequisites

  • Active DAT subscription with API access (DAT Power or qualifying DAT One plan)
  • DAT organization login credentials and Partner ID
  • Salesforce FTM org with System Administrator access
  • Custom Setting: DAT_Org_Credential__c with DAT_Login_Id__c and DAT_Login_Password__c populated
  • Platform Cache partition: local.DATCacheToken must exist before first API call
  • Google Maps API key (for distance validation in carrier load search)

Authentication and Token Architecture

FTM uses a two-token flow with DAT’s Identity API. Tokens are cached via Salesforce Platform Cache to avoid redundant authentication calls.

ComponentDetail
Token type 1Organization token, authenticates the FTM org against DAT
Token type 2User token, authenticates the individual Salesforce user session
Credential storageDAT_Org_Credential__c Hierarchy Custom Setting (admin-only access)
Cache partitionlocal.DATCacheToken (must be created in Setup › Platform Cache)
Org token keyDATORGTokenV1
User token keyDATUSERTOKENV1{USER_ID}
Token TTL28 minutes, auto-expires, new token fetched on next call
Required headerx-dat-partner-id: [YOUR_PARTNER_ID]
Security note: Never publish DAT API endpoints, Partner IDs, or credentials in public-facing documentation. Use placeholders in any externally visible content.

Apex Component Reference

ComponentTypePurpose
PostLoadDat2Apex ClassPosts an FTM Load to DAT. Handles token retrieval, payload construction, saves DAT IDs back to the Load.
PostLoadDat2ControllerVF ControllerExecutes Post / Update / Delete, renders result HTML, creates Completed Task log.
UpdateLoadDat2Apex ClassUpdates an existing DAT posting. Requires DAT_Post_Id__c to exist.
DeleteLoadDat2Apex ClassDeletes a DAT posting. Accepts 200/202/204/404 as success, handles already-deleted gracefully.
PostDriverLoadDatApex ClassSearches DAT loads for a Driver/Truck. Filters by RPM, equipment, and distance. Creates FTM Load from selected result.

Field Mapping: Workflow A – Post Load (FTM to DAT)

FTM FieldDAT FieldNotes
FreightTM__Pickup_City__clane.origin.cityRequired
FreightTM__Pickup_State__clane.origin.stateProvRequired
FreightTM__Pickup_Zip_Code__clane.origin.postalCodeRequired
FreightTM__Delivery_City__clane.destination.cityRequired
FreightTM__Delivery_State__clane.destination.stateProvRequired
FreightTM__Required_Trailer__cfreight.equipmentTypeMapped to DAT codes: V, R, F, PO etc.
Service__cfreight.fullPartialSTL to PARTIAL, FTL to FULL
FreightTM__Weight__cfreight.weightPoundsOptional
FreightTM__Pickup_Date__cexposure.earliestAvailabilityWhenDefaults to now if null
FreightTM__Delivery_Date__cexposure.latestAvailabilityWhenEOD rule + 6-month clamp applied
(DAT response) idDAT_Post_Id__cSaved back to Load on success
(DAT response) shipmentIdDAT_Shipment_Id__cSaved back to Load on success

Field Mapping: Workflow B – Load Search (DAT to FTM)

DAT Response FieldFTM Load FieldNotes
idDAT_Post_Id__cStored on new FTM Load
shipmentIdDAT_Shipment_Id__cStored on new FTM Load
lane.origin.*Pickup City / State / ZipPre-filled on new Load
lane.destination.*Delivery City / State / ZipPre-filled on new Load
lane.pickupDates.startFreightTM__Pickup_Date__cConverted via Date.valueOf()
freight.weightPoundsFreightTM__Weight__cPre-filled on new Load
freight.equipmentNameFreightTM__Required_Trailer__cPre-filled on new Load
(fixed)FreightTM__Status__cSet to ‘Assigned’ on creation

Carrier Load Search – Filtering Logic

Loads returned from DAT pass through three filters before appearing as accepted:

💰 Rate Per Mile

rpm = rate / miles. Rejected if below driver’s Min_Rate_Per_Mile__c.

🚛 Equipment Match

Rejected if load equipment doesn’t match driver’s Equipment_Preference__c.

📍 Distance Check

Actual drive distance via Google Maps API. Rejected if over Max_Deadhead_mile__c.

Error Handling and Troubleshooting

Error / SymptomMost Likely CauseFix
Organization token errorDAT org credentials invalid or expiredVerify DAT_Org_Credential__c has correct username and password
Failed to post load. Please check required fields.Missing lane fields on Load recordConfirm pickup and delivery city, state, and zip are all populated
Search Loads shows validation errorDriver/Truck missing required fieldsPopulate city/zip, equipment, max deadhead, min RPM, and confirm Active = true
All results rejected – Distance too farMax deadhead too restrictive or Google API key issueIncrease Max_Deadhead_mile__c or verify Google Maps API key is active
Platform Cache errors on first runlocal.DATCacheToken partition doesn’t existGo to Setup > Platform Cache and create an Org partition named DATCacheToken

Testing Checklist (Sandbox)

Before you begin, confirm:

  • DAT_Org_Credential__c populated with valid credentials
  • Platform Cache partition local.DATCacheToken exists
  • Test Load has origin and destination city, state, and zip populated
  • Test Driver/Truck has city/zip, equipment, max deadhead, min RPM, and Active = true
  • Google Maps API key is active

Load posting (Workflow A):

  1. Click Post Load. Confirm DAT_Post_Id__c and DAT_Shipment_Id__c are saved.
  2. Confirm a Completed Task is created with the posting confirmation.
  3. Log into DAT and verify the posting appears with the correct lane and equipment.
  4. Change a field, then click Update Load, and verify DAT reflects the change.
  5. Click Delete Load. Confirm the posting is removed from DAT and buttons disappear.

Carrier load search (Workflow B):

  1. Click Search Loads. Confirm accepted and rejected loads appear with reasons shown.
  2. Select an accepted load and click Create Selected Load in Salesforce.
  3. Confirm the new FTM Load has origin, destination, equipment, pickup date, and DAT IDs.
  4. Confirm the driver is assigned and Status = ‘Assigned’.

Let's Talk!

Thanks for stopping by! We're here to help, please don't hesitate to reach out.

Watch 3-Min Demo