Reference · Tools

Onfleet

Manage last-mile delivery operations: tasks, recipients, workers, teams, organizations, hubs, containers, and destinations via the Onfleet API.

Action Utility v1

The Onfleet node manages last-mile delivery: creating and updating tasks, managing recipients, workers, teams, hubs, containers and destinations. A typical build is turning each paid order into an Onfleet delivery task assigned to the right team, with the recipient details attached.

Node type
Action
Parameters
77
Outputs
Output, Error
Credentials
Onfleet API

Onfleet

Manage Onfleet delivery tasks, workers, teams, recipients, hubs, containers, destinations, and organizations.

Overview

Onfleet is a last-mile delivery management platform. This tool allows you to create, read, update, and delete delivery tasks, manage drivers/workers, organize teams, handle recipients, manage hubs (depot locations), work with containers (task assignment groupings), manage destinations, and view organization details. It supports operations like task creation with geocoded destinations, driver time estimates, auto-dispatch of tasks, worker schedule management, and more.

Category: Utility
Tool Name: onfleet
Version: 1

Appearance: Icon: lucide-Truck | Color: #AC45FF

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Onfleet API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Adminadmin
Containercontainer
Destinationdestination
Hubhub
Organizationorganization
Recipientrecipient
Tasktask
Teamteam
Workerworker

Operations

Each resource has its own Operation list, and most resources reuse the same operation values (create, get, getAll, update, delete). Pick the resource first, then the operation.

ResourceOperationValue
AdminCreatecreate
AdminDeletedelete
AdminGet ManygetAll
AdminUpdateupdate
ContainerAdd TasksaddTask
ContainerGetget
ContainerUpdate TasksupdateTask
DestinationCreatecreate
DestinationGetget
HubCreatecreate
HubGet ManygetAll
HubUpdateupdate
OrganizationGet My Organizationget
OrganizationGet Delegatee DetailsgetDelegatee
RecipientCreatecreate
RecipientGetget
RecipientUpdateupdate
TaskCloneclone
TaskCompletecomplete
TaskCreatecreate
TaskDeletedelete
TaskGetget
TaskGet ManygetAll
TaskUpdateupdate
TeamAuto-DispatchautoDispatch
TeamCreatecreate
TeamDeletedelete
TeamGetget
TeamGet ManygetAll
TeamGet Time EstimatesgetTimeEstimates
TeamUpdateupdate
WorkerCreatecreate
WorkerDeletedelete
WorkerGetget
WorkerGet ManygetAll
WorkerGet SchedulegetSchedule
WorkerUpdateupdate

Parameters

Organization: Get My Organization takes no parameters of its own.

Every lookup field — Admin ID, Task ID, Destination ID, Hub ID, Organization ID, Recipient ID, Team ID and Worker ID — is the same underlying parameter, id. Only its label changes with the resource you pick, so a JSON configuration always writes "id". All fields accept expressions, so IDs can come from the incoming item ({{ $json.id }}).

Fields typed json expect a JSON object written in Onfleet’s own shape; each one’s description shows the exact wrapper key it needs.

Admin: Create

ParameterTypeRequiredDefaultDescription
NamestringYesThe administrator’s name.
EmailstringYesThe administrator’s email address.
Additional FieldscollectionNo{}Optional administrator properties.
— PhonestringNoThe administrator’s phone number.
— Read OnlybooleanNofalseWhether this administrator can perform write operations.

Admin: Update

ParameterTypeRequiredDefaultDescription
Admin ID (id)stringYesThe ID of the admin object for lookup.
Update FieldscollectionNo{}Administrator properties to change. Only the fields you add are sent.
— NamestringNoThe administrator’s name.
— PhonestringNoThe administrator’s phone number.
— Read OnlybooleanNofalseWhether this administrator can perform write operations.

Admin: Delete

ParameterTypeRequiredDefaultDescription
Admin ID (id)stringYesThe ID of the admin object for lookup.

Admin: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo64Max number of results to return. (shown when Return All is false)

Container: Get

ParameterTypeRequiredDefaultDescription
Container TypeoptionsYesworkersThe type of container.
Options: organizations, teams, workers
Container IDstringYesThe object ID according to the container chosen.

Container: Add Tasks

ParameterTypeRequiredDefaultDescription
Container TypeoptionsYesworkersThe type of container.
Options: organizations, teams, workers
Container IDstringYesThe object ID according to the container chosen.
Insert Type (type)optionsYes-1How to insert the tasks.
Options: -1 (append to the end), 0 (prepend to the front), 1 (insert at a specific index)
IndexnumberNo0The position where the tasks will be inserted. (shown when Insert Type is 1)
Task IDsstringYesComma-separated task IDs to add or set.
OptionscollectionNo{}Optional assignment behavior.
— Consider DependenciesbooleanNofalseWhether to include the target task’s dependency family in the assignment.

Container: Update Tasks

ParameterTypeRequiredDefaultDescription
Container IDstringYesThe object ID according to the container chosen.
Task IDsstringYesComma-separated task IDs to add or set.
OptionscollectionNo{}Optional assignment behavior.
— Consider DependenciesbooleanNofalseWhether to include the target task’s dependency family in the assignment.

Destination: Create

ParameterTypeRequiredDefaultDescription
Unparsed AddressbooleanNofalseWhether the address is specified in a single unparsed string.
Destination Address (address)stringYesThe destination’s street address as a single string. (shown when Unparsed Address is true)
Number (addressNumber)stringYesThe number component of this address. (shown when Unparsed Address is false)
Street (addressStreet)stringYesThe name of the street. (shown when Unparsed Address is false)
City (addressCity)stringYesThe name of the municipality. (shown when Unparsed Address is false)
Country (addressCountry)stringYesThe name of the country. (shown when Unparsed Address is false)
Additional FieldscollectionNo{}Optional address detail.
— Address NamestringNoA name associated with this address.
— ApartmentstringNoThe suite or apartment number.
— Address NotesstringNoNotes about the destination.
— Postal CodestringNoThe postal or zip code.
— StatestringNoThe state or province.

Destination: Get

ParameterTypeRequiredDefaultDescription
Destination ID (id)stringYesThe ID of the destination object for lookup.

Hub: Create

ParameterTypeRequiredDefaultDescription
NamestringYesA name to identify the hub.
DestinationjsonNo{}Destination properties as JSON: { “destinationProperties”: { “unparsed”: true, “address”: “123 Main St, City, Country” } }.
Additional FieldscollectionNo{}Optional hub properties.
— TeamsstringNoComma-separated team IDs to assign this hub to.

Hub: Update

ParameterTypeRequiredDefaultDescription
Hub ID (id)stringYesThe ID of the hub object for lookup.
Update FieldscollectionNo{}Hub properties to change. Only the fields you add are sent.
— DestinationjsonNo{}Updated destination as JSON.
— NamestringNoA new name for the hub.
— TeamsstringNoComma-separated team IDs.

Hub: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo64Max number of results to return. (shown when Return All is false)

Organization: Get Delegatee Details

ParameterTypeRequiredDefaultDescription
Organization ID (id)stringYesThe ID of the delegatee organization for lookup.

Recipient: Create

ParameterTypeRequiredDefaultDescription
Recipient NamestringYesThe recipient’s complete name.
Recipient PhonestringYesThe recipient’s phone number.
Additional FieldscollectionNo{}Optional recipient properties.
— Recipient NotesstringNoGlobal notes for this recipient.
— Skip Recipient SMS NotificationsbooleanNofalseWhether this recipient has requested to skip SMS notifications.
OptionscollectionNo{}Optional creation behavior.
— Skip Recipient Phone Number ValidationbooleanNofalseWhether to skip validation for this recipient’s phone number.

Recipient: Get

ParameterTypeRequiredDefaultDescription
Get ByoptionsYesidThe method for looking up a recipient.
Options: id, phone, name
Recipient ID (id)stringYesThe ID of the recipient. (shown when Get By is id)
NamestringYesThe name of the recipient for lookup. (shown when Get By is name)
PhonestringYesThe phone number of the recipient for lookup. (shown when Get By is phone)

Recipient: Update

ParameterTypeRequiredDefaultDescription
Recipient ID (id)stringYesThe ID of the recipient object for lookup.
Update FieldscollectionNo{}Recipient properties to change. Only the fields you add are sent.
— Recipient NamestringNoThe recipient’s name.
— Recipient Notes (notes)stringNoGlobal notes for this recipient.
— Recipient PhonestringNoThe recipient’s phone.
— Skip Recipient SMS Notifications (skipSMSNotifications)booleanNofalseWhether to skip SMS notifications.

Task: Create

ParameterTypeRequiredDefaultDescription
DestinationjsonYes{}Destination properties as JSON: { “destinationProperties”: { “unparsed”: true, “address”: “123 Main St, City, Country” } }.
Additional FieldscollectionNo{}Optional task properties.
— Complete AfterstringNoThe earliest time the task should be completed.
— Complete BeforestringNoThe latest time the task should be completed.
— Executor IDstringNoThe ID of the organization responsible for fulfilling the task.
— Merchant IDstringNoThe ID of the organization displayed to the recipient.
— NotesstringNoNotes attached to the task.
— Pick Up TaskbooleanNofalseWhether this task is a pickup rather than a drop-off.
— QuantitynumberNo0Units to be dropped off.
— RecipientjsonNo{}Recipient properties as JSON: { “recipientProperties”: { “recipientName”: “John”, “recipientPhone”: “+1234567890” } }.
— Recipient Name OverridestringNoOverride the recipient name for this task only.
— Recipient Notes OverridestringNoOverride the recipient notes for this task only.
— Recipient Skip SMS Notifications OverridebooleanNofalseOverride the recipient’s SMS notification setting for this task only.
— Service TimenumberNo0Minutes to be spent at the destination.
— Use Merchant For Proxy OverridebooleanNofalseWhether to use the merchant organization for the proxy phone number.

Task: Get

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe ID of the task object for lookup. Supports both full ID and short ID (8 characters or less).

Task: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo64Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the task list.
— FromstringNoThe starting time of the range (ISO 8601 or timestamp).
— StatemultiOptionsNoThe state of the tasks.
Options: all, 0 (unassigned), 1 (assigned), 2 (active), 3 (completed)
— TostringNoThe ending time of the range (ISO 8601 or timestamp).

Task: Update

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe ID of the task object for lookup. Supports both full ID and short ID (8 characters or less).
Update FieldscollectionNo{}Task properties to change. Only the fields you add are sent.
— Complete AfterstringNoThe earliest time the task should be completed.
— Complete BeforestringNoThe latest time the task should be completed.
— Executor IDstringNoThe ID of the organization responsible for fulfilling the task.
— Merchant IDstringNoThe ID of the organization displayed to the recipient.
— NotesstringNoNotes attached to the task.
— Pick Up TaskbooleanNofalseWhether this task is a pickup rather than a drop-off.
— QuantitynumberNo0Units to be dropped off.
— Service TimenumberNo0Minutes to be spent at the destination.

Task: Clone

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe ID of the task object for lookup. Supports both full ID and short ID (8 characters or less).
Override FieldscollectionNo{}Values to change on the clone, and which parts of the original to carry over.
— Complete AfterstringNoThe earliest time the cloned task should be completed.
— Complete BeforestringNoThe latest time the cloned task should be completed.
— Include BarcodesbooleanNofalseWhether to copy the original task’s barcodes.
— Include DependenciesbooleanNofalseWhether to copy the original task’s dependencies.
— Include MetadatabooleanNofalseWhether to copy the original task’s metadata.
— NotesstringNoNotes for the cloned task.
— Pick Up TaskbooleanNofalseWhether the clone is a pickup rather than a drop-off.
— Service TimenumberNo0Minutes to be spent at the destination.

Task: Complete

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe ID of the task object for lookup. Supports both full ID and short ID (8 characters or less).
Complete as a SuccessbooleanYestrueWhether the task’s completion was successful.
Additional FieldscollectionNo{}Optional completion detail.
— NotesstringNoCompletion notes.

Task: Delete

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe ID of the task object for lookup. Supports both full ID and short ID (8 characters or less).

Team: Create

ParameterTypeRequiredDefaultDescription
NamestringYesA unique name for the team.
Worker IDsstringYesComma-separated worker IDs to assign to this team.
Manager IDsstringYesComma-separated administrator IDs to manage this team.
Additional FieldscollectionNo{}Optional team properties.
— Hub ID (hub)stringNoThe team’s hub ID.
— Self AssignmentbooleanNofalseWhether to allow drivers to self-assign tasks.

Team: Get

ParameterTypeRequiredDefaultDescription
Team ID (id)stringYesThe ID of the team object for lookup.

Team: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo64Max number of results to return. (shown when Return All is false)

Team: Update

ParameterTypeRequiredDefaultDescription
Team ID (id)stringYesThe ID of the team object for lookup.
Update FieldscollectionNo{}Team properties to change. Only the fields you add are sent.
— Manager IDsstringNoComma-separated administrator IDs.
— Hub ID (hub)stringNoThe team’s hub ID.
— NamestringNoA new name for the team.
— Self AssignmentbooleanNofalseWhether to allow drivers to self-assign tasks.
— Worker IDsstringNoComma-separated worker IDs.

Team: Delete

ParameterTypeRequiredDefaultDescription
Team ID (id)stringYesThe ID of the team object for lookup.

Team: Auto-Dispatch

ParameterTypeRequiredDefaultDescription
Team ID (id)stringYesThe ID of the team object for lookup.
Additional FieldscollectionNo{}Optional dispatch constraints.
— Ending RoutejsonNo{}Route ending config as JSON: { “endingRouteProperties”: { “routeEnd”: “team_hub” } }.
— Max Allowed DelaynumberNo10Max allowed time in minutes that a task can be late.
— Max Tasks Per RoutenumberNo100Total number of tasks allowed on a route.
— Schedule Time WindowjsonNo{}Schedule time window as JSON: { “scheduleTimeWindowProperties”: { “startTime”: ”…”, “endTime”: ”…” } }.
— Service TimenumberNo2Default service time in minutes when no task service time exists.
— Task Time WindowjsonNo{}Task time window as JSON: { “taskTimeWindowProperties”: { “startTime”: ”…”, “endTime”: ”…” } }.

Team: Get Time Estimates

ParameterTypeRequiredDefaultDescription
Team ID (id)stringYesThe ID of the team object for lookup.
FilterscollectionNo{}The route the estimate should be calculated for.
— Drop OffjsonNo{}Drop-off location as JSON: { “dropOffProperties”: { “dropOffLongitude”: -122.4, “dropOffLatitude”: 37.8 } }.
— Pick UpjsonNo{}Pick-up location as JSON: { “pickUpProperties”: { “pickupLongitude”: -122.4, “pickupLatitude”: 37.8, “pickupTime”: “2024-01-01T12:00:00Z” } }.
— Restricted Vehicle TypesoptionsNoCARVehicle types to ignore in the query.
Options: CAR, MOTORCYCLE, BICYCLE, TRUCK
— Service TimenumberNo120Expected time a worker will take at the location (seconds).

Worker: Create

ParameterTypeRequiredDefaultDescription
NamestringYesThe worker’s name.
PhonestringYesThe worker’s phone number.
Team IDs (teams)stringYesComma-separated team IDs the worker belongs to.
Additional FieldscollectionNo{}Optional worker properties.
— CapacitynumberNo0Maximum units this worker can carry.
— Display NamestringNoName used in SMS notifications and delivery tracking.
— VehiclejsonNo{}Vehicle properties as JSON: { “vehicleProperties”: { “type”: “CAR”, “description”: ”…”, “licensePlate”: ”…”, “color”: ”…” } }.

Worker: Get

ParameterTypeRequiredDefaultDescription
Worker ID (id)stringYesThe ID of the worker object for lookup.
OptionscollectionNo{}Response shaping options.
— AnalyticsbooleanNotrueWhether to include basic worker duty event and analytics.
— Fields to Return (filter)multiOptionsNoA list of fields to show in the response.
Options: accountStatus, activeTask, capacity, delayTime, displayName, imageUrl, location, metadata, name, onDuty, organization, phone, tasks, teams, timeCreated, timeLastModified, timeLastSeen, userData, vehicle, id (the worker ID)

Worker: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo64Max number of results to return. (shown when Return All is false)
Search by LocationbooleanYesfalseWhether to search for workers within a target area.
LongitudenumberYes0The longitude component of the coordinate pair. (shown when Search by Location is true)
LatitudenumberYes0The latitude component of the coordinate pair. (shown when Search by Location is true)
FilterscollectionNo{}Area search options. (shown when Search by Location is true)
— RadiusnumberNo1000Radius in meters (max 10000).
FilterscollectionNo{}Roster filters. (shown when Search by Location is false)
— StatesmultiOptionsNoList of worker states.
Options: 0 (off-duty), 1 (idle — on-duty, no active task), 2 (active — on-duty with an active task)
— TeamsstringNoComma-separated team IDs to filter by.
— PhonesstringNoComma-separated phone numbers to filter by.
OptionscollectionNo{}Response shaping options.
— Fields to Return (filter)multiOptionsNoA list of fields to show in the response.
Options: accountStatus, activeTask, capacity, delayTime, displayName, imageUrl, location, metadata, name, onDuty, organization, phone, tasks, teams, timeCreated, timeLastModified, timeLastSeen, userData, vehicle, id (the worker ID)

Worker: Update

ParameterTypeRequiredDefaultDescription
Worker ID (id)stringYesThe ID of the worker object for lookup.
Update FieldscollectionNo{}Worker properties to change. Only the fields you add are sent.
— CapacitynumberNo0Maximum units this worker can carry.
— Display NamestringNoName used in SMS notifications and delivery tracking.
— NamestringNoThe worker’s name.
— TeamsstringNoComma-separated team IDs.

Worker: Get Schedule

ParameterTypeRequiredDefaultDescription
Worker ID (id)stringYesThe ID of the worker object for lookup.

Worker: Delete

ParameterTypeRequiredDefaultDescription
Worker ID (id)stringYesThe ID of the worker object for lookup.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The Onfleet response is merged onto the input item’s JSON at the top level — the returned fields sit alongside the fields the item already carried, so downstream nodes address them directly ({{ $json.shortId }}). A response field with the same name as an existing item field overwrites it, and an _error property left over from upstream is dropped. Binary data on the input item is forwarded.

OperationsOutput
Admin Delete, Task Delete, Task Complete, Team Delete, Worker DeleteOne output item carrying success: true — these calls confirm the change instead of returning a record.
Every Get ManyOne output item per record, produced from the first input item only. See the note below.
Everything elseOne output item carrying the returned Onfleet object.

A created task looks like this:

{
  "id": "11z1BbsQUZFHD1XAd~emDDeK",
  "shortId": "6c8b1d2c",
  "trackingURL": "https://onf.lt/6c8b1d2ca",
  "organization": "yAM*fDkztrT3gUcz9mNDgNOL",
  "state": 0,
  "completeAfter": null,
  "destination": {
    "id": "8AtVUXPLGY9uxOu4E5vhOR1",
    "address": {
      "number": "123",
      "street": "Main St",
      "city": "San Francisco",
      "country": "United States"
    },
    "location": [-122.4194, 37.7749]
  },
  "recipients": [],
  "timeCreated": 1768478400000
}

Get Many behaves differently from the other operations. The list query runs once and its records are emitted from the first input item; any further input items pass straight through with their own JSON unchanged and no records attached. Feed these operations a single item — for example from a manual trigger — rather than a batch.

Task: Get accepts the eight-character short ID printed on the Onfleet dashboard as well as the full ID, so you can wire it straight to a scanned or pasted reference.

Usage Examples

  • Create a delivery task to 123 Main St
  • Get all active workers
  • List all delivery tasks from the past week
  • Auto-dispatch tasks to team drivers
  • Get driver time estimates for a team

Example Configuration

Create a delivery task from a single-line address:

{
  "type": "onfleet",
  "parameters": {
    "resource": "task",
    "operation": "create",
    "destination": "{\"destinationProperties\":{\"unparsed\":true,\"address\":\"123 Main St, San Francisco, United States\"}}",
    "additionalFields": {
      "notes": "Leave at the front desk",
      "quantity": 2,
      "serviceTime": 5,
      "recipient": "{\"recipientProperties\":{\"recipientName\":\"John Doe\",\"recipientPhone\":\"+14155551234\"}}"
    }
  }
}

Look up a task by the short ID shown on the dashboard:

{
  "type": "onfleet",
  "parameters": {
    "resource": "task",
    "operation": "get",
    "id": "{{ $json.shortId }}"
  }
}

List the tasks in a time range that are still unassigned or assigned:

{
  "type": "onfleet",
  "parameters": {
    "resource": "task",
    "operation": "getAll",
    "returnAll": false,
    "limit": 64,
    "filters": {
      "from": "2026-01-01T00:00:00Z",
      "to": "2026-01-08T00:00:00Z",
      "state": [0, 1]
    }
  }
}

Mark a task complete with a note:

{
  "type": "onfleet",
  "parameters": {
    "resource": "task",
    "operation": "complete",
    "id": "{{ $json.id }}",
    "success": true,
    "additionalFields": {
      "notes": "Delivered and signed for"
    }
  }
}

Copy a task to a new time window:

{
  "type": "onfleet",
  "parameters": {
    "resource": "task",
    "operation": "clone",
    "id": "{{ $json.id }}",
    "overrideFields": {
      "completeAfter": "2026-02-01T09:00:00Z",
      "completeBefore": "2026-02-01T17:00:00Z",
      "includeMetadata": true,
      "notes": "Redelivery attempt"
    }
  }
}

Create a destination from its individual address components:

{
  "type": "onfleet",
  "parameters": {
    "resource": "destination",
    "operation": "create",
    "unparsed": false,
    "addressNumber": "123",
    "addressStreet": "Main St",
    "addressCity": "San Francisco",
    "addressCountry": "United States",
    "additionalFields": {
      "addressPostalCode": "94105",
      "addressApartment": "4B",
      "addressNotes": "Buzz 4B for entry"
    }
  }
}

Register a recipient:

{
  "type": "onfleet",
  "parameters": {
    "resource": "recipient",
    "operation": "create",
    "recipientName": "{{ $json.customerName }}",
    "recipientPhone": "{{ $json.customerPhone }}",
    "additionalFields": {
      "recipientNotes": "Prefers afternoon deliveries"
    }
  }
}

Find a recipient by phone number:

{
  "type": "onfleet",
  "parameters": {
    "resource": "recipient",
    "operation": "get",
    "getBy": "phone",
    "phone": "+14155551234"
  }
}

Add tasks to the end of a worker’s queue:

{
  "type": "onfleet",
  "parameters": {
    "resource": "container",
    "operation": "addTask",
    "containerType": "workers",
    "containerId": "1LjhGUWdxFbvdsTAAXs0TFos",
    "type": -1,
    "tasks": "11z1BbsQUZFHD1XAd~emDDeK,2Fs3~qy8FYaMlZbtLPGdCq0P",
    "options": {
      "considerDependencies": true
    }
  }
}

List on-duty workers with just the fields you need:

{
  "type": "onfleet",
  "parameters": {
    "resource": "worker",
    "operation": "getAll",
    "byLocation": false,
    "returnAll": true,
    "filters": {
      "states": [1, 2]
    },
    "options": {
      "filter": ["name", "phone", "location", "activeTask"]
    }
  }
}

Find workers within 3 km of a pickup point:

{
  "type": "onfleet",
  "parameters": {
    "resource": "worker",
    "operation": "getAll",
    "byLocation": true,
    "longitude": -122.4194,
    "latitude": 37.7749,
    "filters": {
      "radius": 3000
    }
  }
}

Create a team and give it a hub:

{
  "type": "onfleet",
  "parameters": {
    "resource": "team",
    "operation": "create",
    "name": "Downtown Couriers",
    "workers": "1LjhGUWdxFbvdsTAAXs0TFos",
    "managers": "8AtVUXPLGY9uxOu4E5vhOR1",
    "additionalFields": {
      "hub": "5xrjRQmwWjMcVCK7lZfz1cF6",
      "enableSelfAssignment": true
    }
  }
}

Auto-dispatch a team’s unassigned tasks:

{
  "type": "onfleet",
  "parameters": {
    "resource": "team",
    "operation": "autoDispatch",
    "id": "nz1yLDwPzsA2BOMXAY5A~9E~",
    "additionalFields": {
      "maxAllowedDelay": 15,
      "maxTasksPerRoute": 40,
      "serviceTime": 3,
      "endingRoute": "{\"endingRouteProperties\":{\"routeEnd\":\"team_hub\"}}"
    }
  }
}

Ask a team for a driver time estimate between two points:

{
  "type": "onfleet",
  "parameters": {
    "resource": "team",
    "operation": "getTimeEstimates",
    "id": "nz1yLDwPzsA2BOMXAY5A~9E~",
    "filters": {
      "pickUp": "{\"pickUpProperties\":{\"pickupLongitude\":-122.4,\"pickupLatitude\":37.8,\"pickupTime\":\"2026-02-01T12:00:00Z\"}}",
      "dropOff": "{\"dropOffProperties\":{\"dropOffLongitude\":-122.41,\"dropOffLatitude\":37.77}}",
      "serviceTime": 180
    }
  }
}

Read your own organization record:

{
  "type": "onfleet",
  "parameters": {
    "resource": "organization",
    "operation": "get"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage Onfleet delivery tasks, workers, teams, recipients, hubs, containers, destinations, and organizations.

Frequently asked questions

What is the relationship between tasks and containers?

Containers hold the ordered set of tasks assigned to a worker or team, so assigning work usually means putting tasks into the right container rather than editing the task alone.

What can it manage besides deliveries?

Recipients, workers, teams, organizations, hubs and destinations — enough to model the operation itself rather than only the jobs flowing through it.

How do I react to delivery progress?

Use the Onfleet Trigger, which fires on task lifecycle, worker and SMS events.

Which credential does it need?

An Onfleet API credential, shared with the Onfleet Trigger.

Build with the Onfleet node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Onfleet API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.