Skip to content
Home » GraphHopper

GraphHopper

GraphHopper Integration

Turn Loads And Stops Into Planned Routes

GraphHopper provides two distinct APIs: the Routing API calculates point-to-point road distance and estimated travel time; the Route Optimization API sequences multi-stop trips. FTM connects both to load records, trip planning, dispatch, and transportation execution inside Salesforce.

GraphHopper
Route and optimization engine
FTM on Salesforce
Transportation execution
Salesforce-Native
Transportation platform
46+
Integrations
14-Day
Core go-live
24
Countries
Two levels of routing

Two GraphHopper APIs, Two Levels Of Transportation Planning

GraphHopper offers two separate services. The Routing API calculates a road route between locations. The Route Optimization API sequences a set of stops into a planned visit order. FTM can use either, depending on whether the workflow involves a single load or a multi-stop trip.

Load Routing
Routing API: point-to-point distance
Pickup
Route
Delivery
  • Uses pickup and delivery coordinates
  • Calculates point-to-point route distance
  • Can return estimated route time
  • Stores the result on the FTM Load
  • Supports automated background processing
Trip Optimization
Route Optimization API: multi-stop sequencing
Depot
S1
S2
Depot
  • Uses a warehouse or depot and multiple stops
  • Sequences stops into a planned visit order
  • Calculates total trip distance and driving time
  • Writes route order back to related Loads
  • Supports dispatch-ready trip planning
Available routing profiles, constraints, and optimization settings depend on the configured FTM implementation and GraphHopper service plan.
Load-level routing

Calculate Route Distance Without Leaving The Load

When pickup and delivery locations contain valid coordinates, FTM can submit them to GraphHopper and store the returned road distance on the load. The calculation runs in the background, allowing users to continue working while the route result is processed.

Load Created Or Updated
Transportation record in FTM
Pickup And Delivery Coordinates Read
Valid coordinates required
FTM Requests GraphHopper Route
Configured routing profile used
Distance Returned
Road distance from GraphHopper
Unit Converted
To configured FTM distance unit
Load Distance Updated
Stored on the FTM Load record
Load Record | FTM
Load Number
FTM-18342
Pickup
Columbus, OH
Delivery
Pittsburgh, PA
Coordinate Status
Available
Routing Profile
Configured
Route Distance
186 mi
Est. Route Time
Optional
Calculation Status
Completed
The integration is triggered by a configured Salesforce event such as a Flow, Apex process, button, or scheduler. Load distance does not update automatically unless that specific trigger is implemented and active.
Trip planning

Build The Route Around The Trip, Not One Load At A Time

A trip may contain a depot, several loads, multiple delivery points, operational priorities, and a required return location. GraphHopper’s optimization service can evaluate the stop set and return a planned visit order. FTM can then store that sequence across the Trip and related Load records.

FTM Trip Inputs
Depot / Warehouse
Vehicle
Loads and Stops
Coordinates
Priority Rules
Return-to-Depot
GraphHopper
Route Optimization API
FTM Route Plan
Stop Sequence
Total Trip Distance
Est. Driving Time
Load Route Order
Dispatch-Ready Trip
Stop sequencing

Give Every Stop A Planned Position In The Route

The optimization result becomes operational only when the stop order is connected back to the transportation records. FTM can use the GraphHopper response to assign a route sequence to each Load or stop in the Trip.

Original Input Order
A
Load A
Riverside Industrial Park
B
Load B
Downtown Distribution
C
Load C
Airport Freight Terminal
D
Load D
Westside Warehouse
GraphHopper
Optimized Sequence
1
Load C
Airport Freight Terminal
2
Load A
Riverside Industrial Park
3
Load D
Westside Warehouse
4
Load B
Downtown Distribution
Illustrative only. Actual sequence depends on coordinates, constraints, and configured optimization
Sequence1 of 4
LoadLoad C
LocationAirport Freight Terminal
PriorityHigh
Planned ContextConfig-dependent
StatusSequenced
Operational priorities

Combine Optimization With Transportation Rules

The fastest mathematical sequence is not always the correct operational sequence. Customer commitments, load priority, pickup-before-delivery requirements, service times, time windows, vehicle capacity, and dispatch rules can affect the final route plan.

Load Priority
FTM can apply configured business logic to place higher-priority loads earlier in the sequence when the implementation supports it.
Pickup Before Delivery
Maintain required shipment order when the configured optimization model supports paired pickup and delivery sequencing constraints.
Time Windows (plan-dependent)
Time-window constraints are available when supported by the customer’s GraphHopper plan and explicitly included in the configured optimization request.
Service Time
Include expected stop duration in the optimization request when configured, allowing the plan to account for time spent at each stop.
Vehicle Capacity (plan-dependent)
Capacity constraints are available in GraphHopper optimization models that support them, subject to the customer’s plan and the configured implementation.
Return To Depot
Plan a closed-loop route when the trip must return to its starting warehouse, when this option is enabled in the FTM configuration.
Not all six rules are enabled in every FTM deployment. Available constraints depend on the configured implementation, optimization model, and GraphHopper service plan.
From route plan to dispatch

Turn An Optimized Sequence Into Transportation Execution

A route plan has value only when dispatchers can use it to assign resources, communicate expectations, monitor progress, and manage exceptions. FTM keeps the optimized trip connected to the same records used for dispatch and execution.

GraphHopper Route Plan
Sequence and metrics returned
FTM Trip Updated
Distance and time stored
Ordered Loads And Stops
Sequence written to each Load
Driver Or Carrier Assigned
Resources connected to the Trip
Dispatch
Trip and Loads ready for execution
Reporting
Route and execution data together
One planned stop order stored on Trip and related Loads
Total route distance calculated and connected to the Trip
Estimated driving time stored as a planning reference
Dispatch-ready Trip with driver or carrier assignment
Route sequence visible on each related Load record
Distance and time

Keep Planned Route Metrics With The Transportation Record

GraphHopper can return route distance and estimated route time. FTM can store those results on the Load or Trip so they remain connected to dispatch, status, cost, customer communication, and reporting.

Load Record
Pickup
Memphis, TN
Delivery
Nashville, TN
Route Distance
211 mi
Est. Route Time
~3 hrs 10 min
Routing Status
Calculated
Trip Record
Depot
Central Distribution Hub
Stops
6
Total Distance
94 mi
Est. Driving Time
~2 hrs 20 min
Optimization Status
Sequenced
GraphHopper route time is a planning estimate. It should not be presented as live shipment tracking or a continuously predictive ETA unless additional live-data integrations are configured.
Salesforce-Native Does Not Mean Salesforce Required
FTM runs natively on Salesforce, keeping load, trip, customer, carrier, route, and reporting data in one operational environment. Organizations do not need existing Salesforce licenses before implementing FTM. Salesforce Enterprise platform can be included as part of the FTM implementation at no additional platform cost.
Routing profiles

Use The Routing Model That Fits The Implementation

GraphHopper routes depend on the selected routing profile and available map data. The current FTM point-to-point documentation describes the car profile as the default. Other standard, delivery, truck, or custom profiles may be available depending on the customer’s GraphHopper subscription and configuration.

Standard Profile
Suitable for basic road routing based on the selected standard GraphHopper profile. The car profile is described as the current FTM point-to-point default.
Commercial Or Delivery Profile
Can provide vehicle-specific routing context when the appropriate profile is licensed and configured. Availability depends on the customer’s GraphHopper plan.
Custom Profile
Can apply custom road preferences or restrictions when supported by the customer’s GraphHopper package and explicitly configured in the implementation.
The default FTM Routing API integration uses the car profile. Do not assume that height, weight, hazardous-material, road-access, toll, or other commercial restrictions are active unless they are explicitly included in the selected profile and confirmed during testing. The integration should not be described as truck-specific or commercial-vehicle routing without verifying the configured profile with the implementation team.
Matrices and planning scale

Support More Than One Origin And Destination

Point-to-point routing is appropriate for an individual load. For planning across several origins and destinations, GraphHopper’s Matrix API can calculate distance and time relationships across multiple locations. This can support lane analysis, assignment decisions, or larger route-planning workflows when separately implemented.

Optional capability requiring separate implementation. The Matrix API is not part of the standard FTM GraphHopper integration. It requires additional data-model planning, API access, and implementation work beyond the core Routing API and Route Optimization API.
Illustrative Matrix
Load 101
Load 102
Load 103
Warehouse A
42 mi
52 min
78 mi
1h 31m
31 mi
41 min
Warehouse B
67 mi
1h 18m
22 mi
29 min
54 mi
1h 05m
Driver Loc.
19 mi
24 min
44 mi
58 min
61 mi
1h 14m
Values are illustrative only. Matrix API requires separate implementation. Not included in the standard FTM routing workflow.
Planned versus actual

Keep Route Planning Separate From Execution Data

GraphHopper provides planned route information. Actual shipment activity may come from FTM status events, the Carrier and Driver App, telematics, shipment-tracking integrations, documents, or manual operational updates.

Planned Through GraphHopper
Route planning outputs
  • Stop sequence from optimization
  • Route distance
  • Estimated driving time
  • Planned route geometry
  • Optimization result stored on Trip and Loads
Actual Through FTM And Connected Sources
Execution outcomes
  • Arrival and departure events
  • Driver or carrier status updates
  • Actual milestones and confirmations
  • Completed documents and POD
  • Exceptions and final operational outcome
GraphHopper does not provide live shipment tracking or continuously updated ETAs. Planned route metrics come from the GraphHopper response at calculation time. Actual execution data reflects what happened during the trip, sourced from FTM status events, the Carrier and Driver App, telematics integrations, or manual updates. FTM can store both on the same transportation record without treating them as the same data source.
Operational outcomes

What Changes When Route Planning Becomes Part Of The TMS

Faster Route Calculation
Reduce repeated manual distance lookups. When the configured trigger fires, the integration requests the route and stores the result on the Load record.
More Consistent Trip Planning
Use one planned sequence across related Loads and stops. The same route plan connects Trip records to each Load in the correct visit order.
Clearer Dispatch Decisions
Give dispatchers route order, distance, and estimated time context where they already work, without switching to a separate planning tool.
Less Manual Stop Sequencing
Reduce spreadsheet-based reordering of multi-stop trips. Optimization returns a planned visit order that FTM can write back to each related Load.
Connected Route Records
Store routing results with Loads and Trips inside Salesforce. Distance, time, and sequence stay connected to dispatch and reporting.
Stronger Route Reporting
Analyze planned distance, estimated time, stops, and trip outcomes together in Salesforce reporting without reassembling data from separate systems.
Implementation

Connect GraphHopper To FTM With A Controlled Setup

Implementation is configured inside Salesforce using secure credential management and FTM integration settings. Valid coordinates, a selected routing profile, and tested triggers are required before production deployment.

  • An active GraphHopper API account and key
  • Access to the required Routing, Optimization, or Matrix services
  • Secure Salesforce credential configuration
  • Valid coordinates on facilities, loads, warehouses, or stops
  • Selection of the routing profile
  • Agreement on load and trip triggers
  • Definition of returned FTM fields
  • Sandbox testing and production validation
  • OpenStreetMap or applicable data attribution where required
FTM Load Or Trip
Secure Salesforce Connection
GraphHopper API
Route Or Optimization Result
FTM Load And Trip Fields Updated
GraphHopper API access, routing profiles, map datasets, request limits, credit usage, and advanced capabilities are controlled by the customer’s GraphHopper subscription and configuration.
Implementation Details Matter
  • Missing coordinates can prevent route calculation
  • API limits and credits apply per GraphHopper plan
  • Routing profiles may differ by GraphHopper plan
  • Advanced commercial profiles may require paid access
  • Optimization quality depends on accurate stop coordinates
  • Route plans are planning outputs, not live tracking
  • OpenStreetMap attribution may apply
  • Constraint availability depends on optimization model
FAQ

Common Questions

FTM can use GraphHopper to calculate route distance for individual Loads and to sequence stops for configured Trips. Returned distance, time, and sequence results can be stored on FTM transportation records.
Routing calculates a path between locations in a defined order. Route optimization determines a planned assignment or order for multiple stops based on the configured objective and constraints.
Yes. When pickup and delivery coordinates are available, the configured FTM integration can request a road route and store the returned distance on the Load.
Yes. GraphHopper’s Route Optimization API can sequence multiple stops. The FTM implementation can use that result to update the Trip and route-order values on related Loads.
Not automatically in every deployment. The current FTM point-to-point documentation describes the car profile as the default. Truck, delivery, or custom profiles require the appropriate GraphHopper package and configuration.
FTM can apply configured business logic to prioritize certain Loads. Other optimization constraints depend on the implemented GraphHopper model and the customer’s implementation.
GraphHopper’s optimization platform supports configurable constraints such as time windows and vehicle capacities. Availability in FTM depends on the customer’s implementation and GraphHopper service plan.
No. GraphHopper provides routing and optimization results. Live execution visibility normally comes from FTM status events, the Carrier and Driver App, telematics, or tracking integrations.
GraphHopper can return route-time information. FTM can store that result when the implemented workflow and fields are configured to use it.
GraphHopper provides a Matrix API for calculating time and distance relationships among multiple locations. Matrix workflows require separate FTM implementation and data-model planning and are not included in the standard routing workflow.
A route cannot be calculated without valid location coordinates. FTM can skip the affected Load or Trip and surface the issue through the configured operational process.
Yes. Customers generally need a GraphHopper account with access to the required APIs, routing profiles, request limits, and optimization capabilities.
GraphHopper + FTM

Turn Transportation Stops Into Dispatch-Ready Routes

See how FTM connects GraphHopper route calculation and stop optimization to Loads, Trips, dispatch, driver assignments, and reporting inside Salesforce.

Salesforce-native transportation management since 2016.
Let's Talk!

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

Watch 3-Min Demo