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
Este modelo usa dois serviços de terceiros:
Airtable, como banco de dados para locais de filiais
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:
Nome da filial
Endereço
Latitude
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.
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:
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.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.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.

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?