Blog overzicht

Maak een locatiebewuste chatbot en vind de dichtstbijzijnde winkellocaties voor de gebruiker

locatiebewuste chatbot die de dichtstbijzijnde locatie zoekt

Kan je chatbot taken afhandelen op basis van de locatie van je klanten? Nee? Dan is het tijd om je bot naar een hoger niveau te tillen! Stel je een virtuele assistent op WhatsApp of Facebook Messenger voor die je klant kan vertellen waar de dichtstbijzijnde winkel, reparatiedienst of afhaalpunt is.

In dit Knowledge Base-artikel laten we zien hoe je de locatie van de gebruiker kunt gebruiken om de dichtstbijzijnde winkel te vinden. Om een winkel of locatie in de buurt te vinden, hebben we twee dingen nodig:

  1. Locatie/Adres van de gebruiker
  2. Store Locator API

1. Locatie/Adres van de gebruiker

Binnen Flow.ai kun je de Location Trigger en een Any Text Trigger gebruiken om input te krijgen die we kunnen gebruiken. Hoewel het delen van een locatie cool is, geven sommige gebruikers er de voorkeur aan een adres in te voeren omdat ze hun huidige locatie niet willen delen. Daarom wordt aanbevolen om beide opties te gebruiken.

Aangezien de meeste winkelzoekers werken met de lengte- en breedtegraad als invoer, moeten we een gedeelde locatie of een adres converteren naar een lengte- en breedtegraad.

Gebruik locatie of adres om een winkel te zoeken

Locatie

Wanneer je de Location Trigger gebruikt, ontvang je de lat- en long-waarden. Lees meer in onze location docs of gebruik de onderstaande code om een actie te maken en de locatie van de gebruiker om te zetten in een lat, long-waarde.

async payload => {
  
  var lat = "-"
  var long = "-"
  
  // If the user shares location
  if(Array.isArray(payload.params.location)) {
    lat = payload.params.location[0].value.lat
    long = payload.params.location[0].value.long
  }

Adres

Een tweede mogelijkheid om de long- en lat-waarde te verkrijgen, is het gebruik van een door de gebruiker ingevoerd adres. Maar hoe zetten we dat om in een long- en latwaarde?

Een vrij eenvoudige oplossing is om de Google Maps Geocoding API te gebruiken. Bekijk ons artikel over het gebruik van de Google Maps Geocoding API of gebruik de onderstaande code en voeg deze toe aan je bestaande actie.

  if(Array.isArray(payload.params.address)) {
    
    try {
    const {
      params,
      user
    } = payload

    const { address } = params

    const lastAddress = address[address.length - 1].value

    // For this example we show the API key in code
    // but best practice is to use Configuration
    // https://flow.ai/docs/actions/code_configuration
    const key='YOUR SECRET API KEY'

    // Construct a Google API URL
    const url=encodeURI(`https://maps.googleapis.com/maps/api/geocode/json?address=${lastAddress}&key=${key}&language=${user.profile.locale || 'en'}`)

    // Call the API
    const { data } = await request(url)
    const { status, results } = data

    lat = results[0].geometry.location.lat
    long = results[0].geometry.location.lng

  } catch(err) {
    console.error(err)
    // This is not good..
    reply(new Message('Here you will find the closest stores: https://flow.ai/'))
  }
  
  }

2. Store Locator API

Nu hebben we onze long- en lat-waarde en deze waarden kunnen worden gebruikt voor je eigen Store Locator API. Bekijk eventueel je eigen API-documenten om deze te implementeren. Enkele dingen waar je tijdens het ontwerp rekening mee moet houden:

Edge cases afdekken

llocatiebewuste chatbot die de dichtstbijzijnde locatie zoekt

Zowel de Google API als je eigen Store Locator API werkt mogelijk tijdens het testen, maar wat doe je:

In de bovenstaande voorbeeldcode retourneren we eenvoudig een SMS-bericht met een link. Met die link kan de gebruiker nog steeds zelf de dichtstbijzijnde winkel vinden.

Lees meer

Demo aanvragen