Alert Webhooks

Overview

The Genlogs webhooks integration sends notifications when alerts are triggered and matches are found in truck detections. The system operates with a clear separation between webhook endpoints and alert configurations:

  • Webhooks: Define where notifications are sent (URL and authentication)

  • Alerts: Define what to search for (license plates, VINs, USDOT numbers, etc.)

Only enabled webhooks (enabled = true) will receive notifications during processing.

How Webhook Alerts Work

Webhook alerts operate using the same processing system as email alerts:

  • Unified Processing: Both webhook and email alerts use identical search algorithms and scheduling

  • Same Data Source: Webhooks receive the exact same detection matches that would trigger email notifications

  • Parallel Delivery: When alerts find matches, the system simultaneously:

    • Sends email notifications to the configured email addresses

    • Sends webhook payloads to all active webhook endpoints

  • Consistent Timing: Webhook notifications are sent at the same time as email alerts during each processing cycle

  • Shared Alert Rules: The same alert configurations trigger both email and webhook notifications

Current Trigger Methods:

  1. Manually from the Asset Locator UI using the Run Alert Summary button.

  2. Programmatically by calling the /run endpoint from the API.

  3. Automatically once per day in the morning via a scheduled background process.

This means if you currently receive email alerts, enabling webhooks will provide you with the same alert data via HTTP requests to your chosen endpoints.

Key Features

  • Separate Management: Webhooks and alerts are managed independently

  • Consolidated Notifications: Receive one payload with all matches from all your alerts

  • Secure & Reliable: Uses HMAC-SHA512 signature verification and HTTPS-only endpoints

  • Pre-flight Testing: Test your webhook endpoint before deploying

  • Cron-Driven Processing: Alerts are processed on a schedule to find new matches since the last run

Security

  • HMAC-SHA512 Signatures: All payloads are signed for authenticity verification

  • Unique Secret Keys: Each webhook has its own secret key

  • HTTPS-only URLs: Required for all webhook endpoints in production

  • JWT Authentication: API access protected by JWT tokens

  • Role-Based Access Control: Requires specific user roles to manage webhooks

Webhook Payload Format

When one or more alerts find new matches, GenLogs sends a payload with the event type alert.matches_found.

Payload Structure

circle-info

Imputed Fields

Fields is_usdot_imputed, is_cab_imputed, is_mc_imputed, is_trailer_logo_imputed and is_vin_imputed represent whether the corresponding field value was inferred or auto-filled by the system rather than directly observed.

These fields are boolean and help differentiate between raw observations and system-generated estimations.

*this feature requires permission access

circle-info

OCR Score Fields

Fields usdot_number_ocr_score, mc_number_ocr_score, vin_ocr_score, cab_number_ocr_score, trailer_number_ocr_score, and trailer_logo_ocr_score represent the OCR reading reliability classification for their associated fields. For example, usdot_number_ocr_score represents the confidence level for the usdot_number field.

Possible values are:

  • High – The OCR result has a high level of confidence.

  • Medium – The OCR result has a moderate level of confidence; manual verification may be required.

  • Low – The OCR result has a low level of confidence; manual review is recommended.

  • N/A – No OCR score is available for this field.

*this feature requires permission access

circle-info

Hazmat Indicator Field

Field: is_hazmat

The is_hazmat field indicates whether the carrier is identified as operating hazardous materials (HAZMAT). This value represents the system’s determination based on available carrier data and regulatory signals.

Possible values:

  • true – The carrier is identified as operating hazardous materials.

  • false – The carrier is not identified as operating hazardous materials.

*this feature requires permission access

Payload Fields

Field
Type
Description

event

string

Always "alert.matches_found"

webhook_id

string

UUID of the webhook configuration

customer_id

integer

Customer ID associated with the alerts

alert_details

array

Details of all alerts that found matches

matches

array

All detection matches found

total_matches

integer

Total number of matches across all alerts

timestamp

string

ISO timestamp when the webhook was sent

Alert Details Object

Field
Type
Description

id

int

ID of the alert

alert_name

string

Name of the alert

email

string

Contact email for the alert

description

string

Alert description

is_active

boolean

Whether the alert is active

license_plate

string

License plate criteria (if any)

vin

string

VIN criteria (if any)

usdot_number

string

USDOT number criteria (if any)

mc_number

string

MC number criteria (if any)

trailer_number

string

Trailer number criteria (if any)

cab_number

string

Cab number criteria (if any)

trailer_logo

string

Trailer logo criteria (if any)

Match Object Fields

Field
Type
Description

alert_name

string

Name of the alert that generated the match.

result_url

string

URL to the search result in the Genlogs application.

front_view_url

string

URL of the front-view image associated with the match.

side_view_url

string

URL of the side-view image associated with the match.

rear_view_url

string

URL of the rear-view image associated with the match.

time

string (ISO 8601)

Timestamp when the match was detected.

city

string

City where the match was detected.

state

string

State where the match was detected.

road

string

Road or highway where the match was detected.

lat_long

string

Latitude and longitude of the detection location.

license_plate

string

Detected license plate number.

vin

string

Detected Vehicle Identification Number (VIN).

usdot

string

Detected USDOT number.

mc

string

Detected MC number.

cab_number

string

Detected cab number.

trailer_number

string

Detected trailer number.

trailer_logo

string

Detected trailer logo text or label.

deep_search

string

Text matched through deep search processing.

confidence_score

string

Overall confidence classification for the match, aligned with /visual-sightings/carrier-observations values (e.g. High, Medium, Low).

usdot_number_ocr_score

string

OCR confidence score for the detected USDOT number (High, Medium, Low, N/A). Requires permission access.

mc_number_ocr_score

string

OCR confidence score for the detected MC number (High, Medium, Low, N/A). Requires permission access.

vin_ocr_score

string

OCR confidence score for the detected VIN (High, Medium, Low, N/A). Requires permission access.

cab_number_ocr_score

string

OCR confidence score for the detected cab number (High, Medium, Low, N/A). Requires permission access.

trailer_number_ocr_score

string

OCR confidence score for the detected trailer number (High, Medium, Low, N/A). Requires permission access.

trailer_logo_ocr_score

string

OCR confidence score for the detected trailer logo (High, Medium, Low, N/A). Requires permission access.

is_imputed

boolean

Indicates whether any field in the match was inferred or auto-filled by the system rather than directly observed. Requires permission access.

is_dot_imputed

boolean

Indicates whether the USDOT number value was imputed by the system. Requires permission access.

is_cab_imputed

boolean

Indicates whether the cab number value was imputed by the system. Requires permission access.

is_mc_number_imputed

boolean

Indicates whether the MC number value was imputed by the system. Requires permission access.

is_trailer_logo_imputed

boolean

Indicates whether the trailer logo value was imputed by the system. Requires permission access.

is_vin_imputed

boolean

Indicates whether the VIN value was imputed by the system. Requires permission access.

hazmat

boolean | string

Hazmat detection result as stored by the detection system (boolean or label).

is_hazmat

boolean

Normalized indicator specifying whether the detected carrier is classified as hazmat.

Signature Verification

GenLogs signs all webhook payloads with an HMAC-SHA512 hash. Verify this signature to ensure payload authenticity. The signature is provided in the X-GenLogs-Signature HTTP header.

Python Example

HTTP Headers

GenLogs includes the following headers with each webhook request:

Header
Description

Content-Type

Always application/json

User-Agent

GenLogs-Webhook/1.0

X-GenLogs-Signature

HMAC-SHA512 signature for verification

X-GenLogs-Event

Event type (e.g., alert.matches_found)

X-GenLogs-Timestamp

Unix timestamp when the webhook was sent

Error Responses

400 Bad Request (WebhookValidationError)

Occurs when request data is invalid (e.g., webhook URL already in use):

404 Not Found (WebhookNotFoundError)

Occurs when trying to update a non-existent webhook:

403 Forbidden (PermissionError)

Occurs when the JWT token lacks required roles:

Last updated