Skip to content

Google Maps / Routes API

Address geocoding

integration:
  name: "GoogleMapsGeocoding"
  type: "api"

  endpoint: "https://maps.googleapis.com/maps/api/geocode/json"
  authentication:
    apiKey: "{env:GOOGLE_MAPS_KEY}"

  trigger:
    entity: "Location"
    event: "afterSave"
    condition:
      fieldChanged: "address"

  request:
    method: "GET"
    params:
      address: "{street}, {city}, {postalCode}, {country}"

  response:
    mapping:
      "geoLocation.latitude": "results[0].geometry.location.lat"
      "geoLocation.longitude": "results[0].geometry.location.lng"

Route calculation

integration:
  name: "GoogleRoutesCalculation"
  type: "api"

  endpoint: "https://routes.googleapis.com/directions/v2:computeRoutes"

  request:
    method: "POST"
    headers:
      "X-Goog-Api-Key": "{env:GOOGLE_MAPS_KEY}"
      "X-Goog-FieldMask": "routes.duration,routes.distanceMeters"
    body:
      origin:
        address: "{startLocation.address}"
      destination:
        address: "{endLocation.address}"
      travelMode: "DRIVE"
      routingPreference: "TRAFFIC_AWARE"

  response:
    mapping:
      "distanceKm": "routes[0].distanceMeters / 1000"
      "durationMinutes": "routes[0].duration.replace('s', '') / 60"

➡️ Continue to Product feeds.