Encontrar Localização Mais Próxima

Com este modelo, seus clientes podem encontrar facilmente a filial mais próxima do seu negócio apenas perguntando ao seu chatbot! Após pedir ao usuário seu endereço, o bot procurará em um banco de dados externo (Airtable) que contém os dados de todas as suas filiais. Em seguida, ele calculará qual local é mais próximo do endereço do usuário usando a API do Google Maps. Por fim, o bot mostrará o resultado no Google Maps, dentro de um iFrame.

Continue lendo para saber como você pode personalizar este modelo para sua própria organização.

Como personalizar este template

Certifique-se de sempre atualize o NLP após carregar um modelo!

Este modelo usa dois serviços de terceiros:

  1. Airtable, como banco de dados para locais de filiais

  2. Google Maps API, para encontrar o endereço do usuário

Para permitir que seu bot interaja com esses serviços, você precisará de uma chave de API para cada um e configurá-las nos blocos de Ação onde o bot faz as chamadas de API.

Configurando sua própria base do Airtable

Se você não trabalhou com o Airtable antes, pode se inscrever gratuitamente aqui e aprender o básico aqui.

Para cada um dos locais da sua organização, seu Airtable precisará de campos com as seguintes informações:

  1. Nome da filial

  2. Endereço

  3. Latitude

  4. Longitude

Quando você importar recentemente o modelo 'Local mais próximo', ele se vinculará automaticamente a este Airtable. Fique à vontade para usá-lo para testes, mas certifique-se de substituí-lo assim que começar a usar o bot para sua própria organização!

Para mais informações sobre como integrar o Airtable ao seu bot, confira este tutorial.

Gerenciando seus locais de filial em outro banco de dados? Você pode conectar qualquer tipo de banco de dados a este bot, desde que ele tenha uma API. Leia mais sobre nossas integrações de API aqui.

Abaixo está uma visão geral dos blocos principais em cada fluxo do bot. Aqui vamos guiá-lo sobre como configurar a conexão com as APIs do Airtable e do Google Maps, bem como outras dicas para personalizar este modelo para o seu negócio.

Fluxo: Geral

Bloco: Perguntar endereço

Neste bloco, o bot pede ao usuário seu endereço e salva a resposta como uma variável: user_address.

Bloco: Localizador

Para fazer este modelo funcionar, seu bot precisa ser capaz de acessar os dados de localização das suas filiais (no Airtable) e procurar o endereço do usuário (usando a API do Google Maps).

Este bloco usa uma Ação de Código para chamar tanto a API do Airtable quanto a API do Google Maps com o código Javascript mostrado abaixo. Este código pode parecer um pouco intimidador, mas não se preocupe, você só precisa alterar algumas informações!

const allStations = await fetch(`https://api.airtable.com/v0/(YOUR_BASE_ID)/(YOUR_TABLE_NAME)`, { 
headers: {
Authorization: `Bearer (YOUR_AIRTABLE_API_KEY)`
}
}).then(r => r.json());
let re = / /g; 

const currLoc = args.user_address.replace(re, '+');
let minDistance = Number.MAX_SAFE_INTEGER; 
let nearestShop;
const chatlayer = ChatlayerResponseBuilder(); chatlayer.addSessionVariable('currLoc', currLoc); 
const addressFromMaps = await fetch(`https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=${currLoc}&inputtype=textquery&fields=geometry&key=(YOUR_GOOGLEMAPS_API_KEY)`).then(r=> r.json()); 
const geoLocation2 = { 
Latitude: addressFromMaps.candidates[0].geometry.location.lat, 
Longitude: addressFromMaps.candidates[0].geometry.location.lng, 
} 
//const geoLocation2 = {Latitude : "52.5001278", Longitude : "13.3121555"}; allStations.records.forEach(station=>{ 
const geoLocation1 = station.fields;
const lat = geoLocation1.Latitude - geoLocation2.Latitude; 
const lon = geoLocation1.Longitude - geoLocation2.Longitude; 
 
const val = Math.sqrt(Math.pow(lat, 2) + Math.pow(lon, 2)); if(minDistance>val){ 
minDistance = val; 
closestLocation = geoLocation1;
}
});

closestLocation.Address = closestLocation.Address.replace(/ /g, ' ');
chatlayer.addSessionVariable('closestLocation', closestLocation);
chatlayer.addSessionVariable('addressFromMaps', addressFromMaps); chatlayer.send();----------------------------------

Neste trecho de código, você deve personalizar as três coisas a seguir:

  1. O link do Airtable Na URL da linha 1 do bloco de código, substitua (YOUR_BASE_ID) pelo ID da sua própria base do Airtable e (YOUR_TABLE_NAME) pelo nome ou ID da tabela que contém seus dados de localização. Você pode encontrar os IDs da base e da tabela do seu Airtable aqui, ou na URL da visualização da sua tabela.

  2. A chave de API do Airtable Na URL da linha 3, substitua (YOUR_AIRTABLE_API_KEY) pela sua própria chave de API do Airtable. Você pode encontrar a chave de API em seu página da conta do Airtable.

  3. A chave de API do Google Maps Na linha 13, substitua (YOUR_GOOGLEMAPS_API_KEY) pela sua própria chave de API do Google.

Bloco: Fornecer endereço

Neste bloco, o bot mostra o nome e o endereço da localização mais próxima encontrada no banco de dados. O nome é armazenado em closestLocation.Name variável e o endereço em closestLocation.Address.

Bloco: Mostrar local no mapa

Neste bloco o bot mostra a localização da filial mais próxima em um mapa, dentro de um iFrame. No campo Fonte da ação iFrame, também substitua (YOUR_GOOGLEMAPS_API_KEY) pela sua própria chave de API do Google.

O Mostrar local no mapa o bloco com a parte da URL de origem a ser alterada destacada em vermelho

Bloco: Limpar endereço do usuário

Finalmente, neste bloco o bot limpa a variável user_address para que o usuário possa iniciar o fluxo novamente e usar outro endereço.

Conecte o fluxo a outros fluxos

Agora que você adicionou este novo fluxo, certifique-se de que ele se conecta a outros fluxos. Por exemplo, se este for um caso de uso importante para o seu bot, certifique-se de mencioná-lo na introdução.

É isso, agora seu bot pode encontrar os locais mais próximos ao endereço do usuário! 👏

Last updated

Was this helpful?