Geolocation Console

Automatically geocode addresses and manage location data quality in Skedulo.

Overview

Accurate geolocation data is essential for effective scheduling and optimization in Skedulo.

Latitude and longitude values are used for:

  • Route optimization
  • Travel time calculations
  • Map visualization
  • The Skedulo mobile app

When records are created manually in the Skedulo UI, address validation automatically captures geolocation data. However, when records are created through integrations (such as the GraphQL API) or bulk imports, latitude and longitude values are not automatically generated.

The Automated Geocoding extension solves this by:

  • Automatically detecting new or updated records
  • Sending address data to a geocoding service
  • Populating latitude and longitude fields
  • Tracking the status and accuracy of each geocode attempt

This ensures consistent, reliable location data across your system.

How Automated Geocoding Works

The extension monitors supported objects for insert and update events.

Workflow

  1. A record is created or updated.
  2. A webhook detects the change and invokes a function.
  3. The function checks whether:
    • An address exists
    • Latitude and longitude are missing
  4. If geocoding is required, the address is sent to the geocoding API.
  5. The response updates:
    • GeoLatitude
    • GeoLongitude
    • GeolocationStatus
    • GeolocationAccuracy

This process runs automatically in the background.

Supported Objects

Automatic geocoding is available for:

  • Activity
  • Job
  • Location
  • Resource

These objects contain address information used for scheduling and routing.

Understanding Location Data Sources

Location data in Skedulo often originates from:

  • External systems integrated via the GraphQL API
  • Data imports using tools such as Data Loader
  • Manual entry through the Skedulo UI

External systems typically do not store latitude and longitude values. The Automated Geocoding extension enriches these imported records with the required geolocation data.

Geolocation Status and Accuracy

To help manage location quality, two fields are added to supported objects.

GeolocationStatus

This field tracks the result of the geocoding attempt.

Status Description
NULL Record was created or last updated before the extension was installed
Unencoded No address was provided
Error Address was provided, but no valid match was found
Verified Address was successfully matched

This field helps identify records that require review.

GeolocationAccuracy

This field indicates how precisely the address was matched.

Value Description
StreetAddress Matched at street-number level (highest accuracy)
Other Matched at a broader level (for example, street, suburb, or partial match)

Street-level matches are recommended for accurate routing and optimization.

Managing Location Quality with the Geolocation Console

The Geolocation Console provides a centralized way to review and manage address data.

It includes separate tabs for:

  • Activity
  • Job
  • Location
  • Resource

The console uses Skedulo List Views, allowing you to:

  • Filter records
  • Create saved views
  • Sort by status or accuracy

Most customers use the console to manage exceptions by filtering for records where GeolocationStatus is either Unencoded or Error.

Editing and Correcting Addresses

From the Geolocation Console:

  1. Select a record to open its details page.
  2. Edit the address field.
  3. Use address suggestions powered by Skedulo’s geoservices.
  4. View the address on a map.
  5. Save the record to trigger re-geocoding.

Improving Accuracy with Regions

The Region object supports latitude and longitude fields.

If:

  • Regions are configured with geolocation data
  • Jobs, Resources, or Locations are linked to a Region

The geocoding service prioritizes results within that region’s boundary.

This improves match precision and reduces incorrect geographic matches.

Important Considerations

Daily Geocoding Limits

Automatic geocoding is limited to:

500 records per 24-hour period

The GeocodingCallouts object tracks usage and enforces this limit.

If a large number of records are imported, processing may take time as requests are handled within the daily limit.

Large Data Imports

If many records are inserted or updated at once:

  • Geocoding requests are queued
  • Processing may take time
  • Other Skedulo functionality remains unaffected

Optimization and scheduling do not directly depend on the GeolocationStatus or GeolocationAccuracy fields.

Invalid or Incomplete Addresses

Incorrect or malformed addresses:

  • Still count toward daily limits
  • May result in Error status or reduced accuracy

Ensuring clean, standardized address data improves geocoding results.

Special Handling for Activity Records

When updating an existing Activity via GraphQL:

  • GeoLatitude and GeoLongitude must be explicitly set to null to trigger re-geocoding.
  • If not set to null, existing values remain unchanged and the status may not update correctly.

Existing Records and Backfilling

The extension only triggers on new or updated records.

Records that existed before installation:

  • Will not automatically populate GeolocationStatus
  • Will not automatically populate GeolocationAccuracy

To trigger geocoding on existing records, the address must be updated.

Future enhancements may support bulk backfilling.

Technical Reference

Daily Limits

Description Limit
Maximum auto-geocoded records per 24 hours 500

Schema Overview

Custom Fields

GeolocationStatus
Parent objects:

  • Activity
  • Job
  • Location
  • Resource

Possible values:

  • Unencoded
  • Error
  • Verified

GeolocationAccuracy
Parent objects:

  • Activity
  • Job
  • Location
  • Resource

Possible values:

  • StreetAddress
  • Other

Custom Object

GeocodingCallouts

Tracks geocoding API usage.

Fields:

  • LastDate – Used to reset the daily counter
  • MaxRequestPerDay – Number of calls logged during the current 24-hour period