Why both
Operations Center is great at telematics. We're great at the shop floor.
John Deere Operations Center is the canonical surface for machine performance, location history, and utilization analytics — built by JD, owned by JD, deeply integrated with the OEM equipment. DirtFleet handles what Operations Center doesn't: maintenance scheduling, hour-based PM triggers, work-order queues for the mechanic shop, tool tracking, repair-log P&L by project. The two systems live in different parts of the workflow; the integration glues them together so you don't re-key data between them.
Pick a pattern
Operations Center direct, AEMP cross-OEM, or DTC routing.
Pattern 1 — Operations Center OAuth + machine sync (live)
The DirtFleet OAuth client for John Deere Operations Center is shipped (lib/integrations/john-deere). Authorize once, DirtFleet pulls your machine roster + engine-hours on a 15-minute polling cadence. Each new machine becomes an Asset; each hours reading writes a HoursLog.
When to pick this
If your fleet is heavy on JD iron (combines, sprayers, tractors, construction equipment) and you already use Operations Center for telematics + utilization tracking. The maintenance workflows live in DirtFleet; OC stays the OEM data source.
Show the setup
# Step-by-step from a customer perspective — no code on your end: # # 1. In DirtFleet: /settings/integrations/john-deere-operations-center # 2. Click "Connect Operations Center" — redirects to JD's OAuth page # 3. Approve the requested scopes: # - Read Machine Inventory (so we can mirror your roster) # - Read Machine Hours (so we can sync engine hours) # - (Optional) Read Service Codes (for DTC routing — Pattern 3) # 4. JD redirects back; DirtFleet stores the refresh token encrypted # 5. Initial sync runs immediately — typically completes in 1-3 minutes # for a 50-machine fleet # 6. Subsequent polls run every 15 minutes; each one is a delta-only # upsert so the API call cost stays flat
Pattern 2 — AEMP-generic fallback (covers OEM brands beyond JD)
DirtFleet also speaks the AEMP (Association of Equipment Management Professionals) telematics XML standard, which is the de-facto cross-vendor protocol for off-road equipment. If you have JD + Cat + Komatsu in the same fleet, the AEMP feed normalizes them all.
When to pick this
Mixed-OEM fleets that don't want one integration per brand. AEMP gives you a single endpoint per OEM that all return the same XML shape; DirtFleet's AEMP adapter parses it identically regardless of source.
Show the setup
# Each OEM has its own AEMP endpoint; the data shape is the same. # DirtFleet stores the credentials at /settings/integrations/aemp and # polls each registered endpoint on a 30-minute cadence. # # What we receive (from any AEMP source): # <Fleet> # <Equipment> # <SerialNumber>...</SerialNumber> # <Make>...</Make> # <Model>...</Model> # <CumulativeHours>...</CumulativeHours> # <Location><Latitude>...</Latitude>...</Location> # <Odometer>...</Odometer> # </Equipment> # </Fleet> # # What we do with it: # - SerialNumber → Asset.serial (matched 1:1) # - Make+Model → equipmentSnapshot JSON # - CumulativeHours → HoursLog (deltas only) # - Location → optional yard reassignment if a yard sits within 200m # # AEMP is documented at https://aemp.org/standards/. # OEMs that publish: JD, Cat, Komatsu, Hitachi, Volvo CE, Doosan, # Bobcat, Bell, Bell-Hyundai, etc.
Pattern 3 — JD DTC routing (roadmap)
Operations Center surfaces Service Advisor codes from the machine's CAN bus. DirtFleet's DTC-narrative AI translates the code into plain English and creates a YELLOW flag with context already attached — same shape as the Samsara DTC routing.
When to pick this
Operations that want pre-triaged shop alerts. Mechanic gets the code + a paragraph explanation + likely cause + suggested next step before they walk to the machine.
Show the setup
# Status: Roadmap — gated on activating customer. # # The AI narrative pipeline is shipped (lib/ai-dtc-narrative.ts; # used today by drivers logging DTCs manually). The OC webhook # subscription + automated flag creation is the wiring not yet # in place; the OC OAuth scope is the dependency (re-prompt the # customer if they didn't grant Read Service Codes initially). # # Once active, the flow is: # 1. JD Operations Center sends a Service Advisor event webhook # 2. DirtFleet authenticates the event signature # 3. AI narrative generates the human-readable context # 4. We post a YELLOW flag with the narrative + machine reference # 5. Mechanic dashboard sorts it by urgency and surfaces in queue # # Email hello@dirtfleet.app to be the first OEM-routing customer.
Honest scope
What we don't do.
- Bidirectional sync. Operations Center → DirtFleet is one-way. Maintenance state lives in DirtFleet; the OC view stays read-only from our side.
- Operator/yield analytics. Stays in Operations Center. That's the precision-ag domain we're not in.
- Real-time location streaming. 15-minute polling is sufficient for maintenance triggers; sub-minute location is OC's product.
Pairs with
Cross-OEM mixed fleets
See also /integrations/samsara (on-road) and /integrations/geotab (mixed). For mixed-OEM off-road fleets (JD + Cat + Komatsu), the AEMP fallback (Pattern 2 here) is the right single-integration path.
Already have an Operations Center account? Connect at /settings/integrations once signed up. Or email hello@dirtfleet.app for a hands-on activation.