Skip to main content

Gate Operations

Gate Operations in Opendock enables facilities to streamline the carrier check-in process through self-service mobile capabilities. When carriers arrive at your facility, they can scan a QR code with their mobile device, input required information, and complete the check-in process — all without manual intervention from gate personnel.

Understanding Gate Management

The Gate Management system sits between dock scheduling and yard management, providing a bridge that handles both planned and unplanned arrivals. This independence from the traditional dock scheduling system offers flexibility in managing diverse arrival scenarios.

Check-in Process

When a driver arrives at your facility and initiates check-in:

  1. QR Code Scan: The driver scans a location-specific QR code displayed at the gate
  2. Information Input: The driver provides required information through a mobile-optimized interface
  3. Link Detection: The system attempts to link the check-in to an existing appointment using reference numbers or confirmation numbers
  4. Asset Visit Creation: An Asset Visit record is created, capturing the arrival details

Planned vs. Unplanned Arrivals

The check-in process supports two scenarios:

  • Planned Arrival: If the driver provides a valid reference number or confirmation number that matches an existing appointment, the check-in is linked to that appointment via the appointmentId field.
  • Unplanned Arrival: If no matching appointment is found, the system creates a standalone Asset Visit record, capturing the arrival as an unplanned visit.
note

Asset Visit data is stored independently from appointment records, even when linked. This separation ensures yard management operations can function independently while maintaining optional connections to the scheduling system.

Asset Visits

An Asset Visit represents a physical arrival at your facility and serves as the core entity for gate operations. Each visit can have:

  • Basic Information: License plate, DOT number, driver phone, company details
  • Visit Type: One of Live, Drop, PickUp, DropHook, or Unknown
  • Events: A timeline of events such as NotArrived, Arrived, Docked, Departed, Canceled, Attached, Detached, AppointmentLinked, and AppointmentUnlinked
  • Containers: Associated asset containers that can be attached or detached during the visit
  • Custom Form Data: Additional fields configured for your facility's specific needs

Common API Operations

Listing Asset Visits

Retrieve asset visits along with their associated containers and events.

API Endpoint:

GET /asset-visit?join[]=assetContainers&join[]=assetVisitEvents

📚 API Docs

Example Response:

{
"data": [
{
"id": "e594240e-9882-43fa-a206-77dc0b60cef0",
"createDateTime": "2024-10-29T17:41:03.348Z",
"warehouseId": "746a7b37-9592-45db-8a58-656c7727603d",
"appointmentId": "80862efd-ac23-49e0-a307-d493bd0e2de7",
"secondaryAppointmentId": null,
"licensePlate": "ABC123",
"dotNumber": "1212",
"companyId": null,
"phone": "+12485056144",
"isPlanned": false,
"companyHint": "Opendock",
"driverNotes": null,
"driverAppointmentIdentifier": null,
"visitType": "PickUp",
"checkInAcknowledged": true,
"assetContainers": [],
"assetVisitEvents": [
{
"id": "4fa1c49b-4dfe-4a9d-95bc-e1cae7040d17",
"createDateTime": "2024-10-29T17:41:03.362Z",
"assetContainerId": null,
"eventType": "Arrived"
},
{
"id": "138405b9-16af-41c0-8e06-03e5074438f6",
"createDateTime": "2024-10-29T17:53:11.955Z",
"assetContainerId": null,
"eventType": "Docked"
},
{
"id": "4e12b26f-a185-4ed3-8c5e-61e4b5edd5f4",
"createDateTime": "2025-02-20T22:07:38.558Z",
"assetContainerId": "d47c4497-2b58-40a3-96e3-43faaa886092",
"eventType": "Detached"
},
{
"id": "5094127e-ca5a-4448-9de8-e22af0c29329",
"createDateTime": "2025-05-13T17:14:31.322Z",
"assetContainerId": "d47c4497-2b58-40a3-96e3-43faaa886092",
"eventType": "Attached"
},
{
"id": "0cf4d494-dc70-41e7-b132-34c35901d3a2",
"createDateTime": "2025-05-13T17:14:57.613Z",
"assetContainerId": "d47c4497-2b58-40a3-96e3-43faaa886092",
"eventType": "Detached"
},
{
"id": "dbb66854-49a8-4588-af0d-f891857b11aa",
"createDateTime": "2025-05-13T17:14:58.377Z",
"assetContainerId": null,
"eventType": "Departed"
}
]
}
],
"entity": "AssetVisit",
"action": "read",
"count": 1,
"total": 1,
"page": 1,
"pageCount": 1
}

Filtering Asset Visits

You can use the search parameter (s) to filter asset visits based on various criteria. For more information about search syntax, see our Sorting and Filtering guide.

Common Search Parameters:

  • appointmentId: Filter to asset visits linked to a specific appointment
  • warehouseId: Filter to arrivals at a specific warehouse location
  • createDateTime: Filter by arrival time using $gt (greater than) and $lt (less than) operators
  • isActive: Filter active vs. soft-deleted records
  • isPlanned: Distinguish between planned and unplanned arrivals
  • visitType: Filter by visit type (e.g., "PickUp", "DropOff")

Example: Get arrivals within a specific time window

GET /asset-visit?join[]=assetContainers&join[]=assetVisitEvents&s={"isActive":true,"warehouseId":"746a7b37-9592-45db-8a58-656c7727603d","createDateTime":{"$gt":"2024-10-01T00:00:00.000Z","$lt":"2024-10-31T23:59:59.999Z"}}

This query returns all active asset visits for a specific warehouse that arrived during October 2024.

Example: Get asset visit linked to an appointment

GET /asset-visit?join[]=assetContainers&join[]=assetVisitEvents&s={"appointmentId":"80862efd-ac23-49e0-a307-d493bd0e2de7"}

This query retrieves the asset visit associated with a specific appointment, useful for connecting dock scheduling data with gate operations.

Example: Get unplanned arrivals

GET /asset-visit?join[]=assetContainers&join[]=assetVisitEvents&s={"isPlanned":false,"warehouseId":"746a7b37-9592-45db-8a58-656c7727603d"}

This query returns all unplanned arrivals (walk-ins) for a specific warehouse.

Retrieving Custom Form Data

Asset visits can have custom fields attached to capture additional information during the check-in process, such as driver's license photos, seal numbers, or facility-specific identifiers. This data is stored separately from the core Asset Visit record.

API Endpoint:

GET /custom-forms/form-data?s={"objectId":"{assetVisitId}"}

📚 API Docs

Example Request:

GET /custom-forms/form-data?s={"objectId":"e594240e-9882-43fa-a206-77dc0b60cef0"}

Example Response:

{
"data": [
{
"id": "63a2aab8-44d9-43b7-98b8-c81f6b455637",
"createDateTime": "2024-10-29T17:41:03.381Z",
"lastChangedDateTime": "2024-10-29T17:41:03.381Z",
"objectId": "e594240e-9882-43fa-a206-77dc0b60cef0",
"entityName": "assetvisit",
"label": "Container Number",
"value": 123123,
"type": "int",
"triggerId": "dee1bb68-d30b-4c61-9752-51e75a3159e7",
"formField": null
},
{
"id": "d169d00a-3993-4ca8-ba83-6d1a76c90a3a",
"createDateTime": "2024-10-29T17:41:03.381Z",
"lastChangedDateTime": "2024-10-29T17:41:03.381Z",
"objectId": "e594240e-9882-43fa-a206-77dc0b60cef0",
"entityName": "assetvisit",
"label": "Vendor",
"value": [
"Central Asia"
],
"type": "dropdownmultiselect",
"triggerId": "dee1bb68-d30b-4c61-9752-51e75a3159e7",
"formField": null
}
],
"entity": "CustomFormData",
"action": "read",
"count": 2,
"total": 2,
"page": 1,
"pageCount": 1
}
tip

To get a complete picture of a gate check-in, you'll typically need to make two API calls: one to retrieve the Asset Visit record (with events and containers), and another to retrieve any associated custom form data. This separation allows for flexible data modeling and efficient queries.

Understanding Asset Visit Events

Asset Visit Events provide a chronological timeline of what happens during a visit. Event types include:

  • NotArrived: The container is expected to arrive but hasn't yet, for example, within the appointment perspective
  • Arrived: The carrier has checked in at the gate
  • Docked: The trailer has been assigned to a dock door
  • Departed: The carrier has left the facility
  • Canceled: The visit has been canceled
  • Attached: A container has been attached to the trailer
  • Detached: A container has been detached from the trailer
  • AppointmentLinked: The visit has been linked to an appointment
  • AppointmentUnlinked: The visit has been unlinked from an appointment

Each event includes:

  • Timestamp (createDateTime)
  • Event type (eventType)
  • Associated container reference (assetContainerId), when applicable

These events help facilities track the complete lifecycle of a visit and provide visibility into yard operations.

Integration Workflow

A typical integration workflow for gate operations might include:

  1. Poll for New Arrivals: Periodically query for new asset visits using the createDateTime filter
  2. Retrieve Visit Details: For each new visit, get the complete information including events and containers
  3. Fetch Custom Data: If your facility collects custom form data, retrieve it using the asset visit ID
  4. Link to Appointments: Use the appointmentId field to connect gate operations with your dock scheduling system
  5. Process Updates: Monitor asset visit events to track progress through your facility

Need more help?

For more information about setting up custom forms for gate check-in, see our Creating a Load Type Form guide.

Check out our Warehouses API Reference for complete documentation of all available endpoints.

Please reach out to our support team to get help with any questions, or join our API Slack Workspace.