Creación de un bot de búsqueda con Slack, Zapier y Elastic App Search
Sería muy útil poder crear tu propio bot de búsqueda y enviarle consultas desde Slack, ¿no? Imagínate cómo sería buscar a través de miles y miles de registros de clientes, artículos, registros de servidor o tickets de Helpdesk, todo desde un canal de Slack. Para crear un bot de búsqueda tan útil, entrelazaremos Elastic App Search y Slack mediante Zapier.
¡Sin codificación!
Bot de búsqueda: Ensamblado
Necesitaremos:
- Una cuenta de Elastic App Search o [una prueba gratuita de 14 días] (https://www.elastic.co/es/cloud/app-search-service). Elastic App Search es una caja de herramientas que permite crear experiencias de búsqueda de clase mundial. Puedes ajustar la relevancia usando [Pesos y Refuerzos] (https://swiftype.com/documentation/app-search/guides/relevance-tuning), [Curaciones] (https://swiftype.com/documentation/app-search/guides/curations) y [Sinónimos] (https://swiftype.com/documentation/app-search/guides/synonyms), y capturar analíticas de búsqueda profundas. ¿Lo mejor de todo? Está basado en el Elastic Stack.
- Documentos de Elastic App Search. Cada nueva cuenta viene con un campo de motor de búsqueda de muestra con datos de un Parque Nacional de los Estados Unidos. Puedes usar esos datos o [indexar tus propios documentos] (https://swiftype.com/documentation/app-search/guides/indexing-documents) y adaptar el tutorial.
- Una cuenta o una versión de prueba de Zapier. Zapier es un servicio de automatización. A través de él, puedes crear Zaps. Un Zap es un pipeline de automatización. Cada paso en una cadena de automatización puede transformar datos y realizar acciones a través de ellos.
- Unos 30 minutos.
Al finalizar, si escribes "search for query
" dentro de un canal de Slack designado, se enviará la query
a Elastic App Search como una llamada de API:
Toma el relevo con Slack
Inicia sesión en Zapier y haz clic en Make a Zap!
En primer lugar, tenemos que crear un desencadenante.
El desencadenante conectará Zapier con un espacio de trabajo en Slack.
Busca Slack y luego selecciónalo.
Puedes elegir entre varios desencadenantes de Slack.
Vamos a elegir: "New Message Posted Anywhere".
Haz clic en Continue. Zapier te pedirá autenticarte con Slack.
Una vez que te hayas autenticado, asocia la instancia de la cuenta con el Zap.
Indica que no hay que responder a los filtros de bot, no lo necesitaremos.
Lo que sí necesitaremos es una pequeña muestra de datos de Slack. Dentro de un canal de prueba en el espacio de trabajo asociado de Slack, escribe "search for old growth". El mensaje se pondrá a disposición de Zapier durante la fase Test This Step.
Selecciona el mensaje y haz clic en Continue.
Este es el primer eslabón en nuestra cadena de automatización ¡Excelente!
Filtración suave
El siguiente paso es configurar el único [filtro de Zap] (https://zapier.com/help/filter/).
Debajo del encabezado ADD A HELPER STEP, haz clic en Filter.
Continúa con la opción: Only continue if….
Y luego complétala así:
[Text] [Contains] "search for"
Esto activará el Zap cuando alguien escriba search for
dentro de Slack.
Y… ¡acción!
Ahora necesitamos crear cuatro acciones para que cada elemento que siga al comando "search for" se añada como una consulta, de manera que obtengamos resultados bien formateados de App Search.
La primera acción es eliminar el texto "search for" de la consulta de búsqueda que le pasaremos a App Search.
Haz clic en Add a step y luego selecciona Action/Search.
Selecciona Formatter. Es la primera opción debajo de BUILT-IN APPS.
A continuación, selecciona Text.
Aparecerá un menú desplegable Transform. Haz clic y escribe Replace y selecciónalo.
Los últimos dos campos son Find y Replace.
Dentro de Find, escribe "search for".
Deja Replace en blanco y haz clic en Continue.
Completa este paso y vuelve a hacer clic en Add a Step.
Capitán Webhook
La segunda acción es nuestra llamada de API. Aquí es donde crearemos la consulta que le enviaremos a App Search. Cualquier elemento que siga a la frase "search for…" es el parámetro de consulta.
Generaremos la llamada de API mediante Webhooks.
Dentro del menú desplegable Choose an Action App escribe Webhooks by Zapier y selecciónalo.
Debajo del encabezado CREATE, selecciona POST y haz clic en Continue.
Se requieren cuatro campos para crear la llamada de API:
1. URL
La URL del punto de conexión de la API se proporciona dentro del dashboard de App Search. Debe contener tu propio identificador de host, como: https://host-2376rb.api.swiftype.com/api/as/v1/engines/sample-engine/search. Si quieres, puedes usar la URL anterior para crear tu ejemplo, ya que es pública.
2. Tipo de carga
Predeterminado como formulario. Selecciona Json.
3. Datos
Dentro de la primera casilla, ingresa "query"; este es el parámetro que incluiremos dentro del POST. Haz clic en el ícono que se encuentra junto a la barra de entrada de valor. Desde allí, selecciona los datos de prueba de "search for old growth" del paso 1:
Selecciona el campo Text que contiene la cadena del mensaje de Slack de ejemplo.
4. Encabezados
Al final del formulario, hay una sección Headers. En la primera casilla, escribe "Authorization". En la casilla que está al lado, ingresa la palabra "Bearer" seguida de tu clave de búsqueda pública, que se encuentra dentro del menú Credentials del dashboard de App Search:
Si no tienes tu propia clave, puedes usar esta clave pública de prueba: search-7eud55t7ecdmqzcanjsc9cqu
.
Haz clic en Continue y luego ejecuta una prueba. Deberías ver un ejemplo de respuesta que contiene datos del parque proporcionados por el motor de búsqueda de App Search.
Genial, ahora podemos hacer una solicitud de API. Ahora necesitamos darle formato a la respuesta.
Automágico
Haz clic en Add a Step.
Selecciona Action/Search y luego busca y selecciona Formatter.
Debajo del encabezado CREATE, selecciona la opción Utilities y haz clic en Continue.
En la sección Transform, escribe Line Itemizer.
Queremos crear dos elementos debajo del encabezado Line-item(s) basado en el resultado de la llamada de API en el paso 4...
- Título: "Título de resultados sin procesar"
- Enlace: "Enlace de resultados de NPS sin procesar"
Solo queremos que nuestros resultados muestren el nombre de un parque nacional estadounidense y un enlace que contenga más información:
Prueba y completa el paso. Ahora, nuestra tercera acción...
Paso, formato, paso
Haz clic en Add a Step.
Selecciona Formatter y luego Utilities, como antes...
Pero esta vez busca Line-Item to Text.
Hay una casilla llamada Values, con un encabezado de Input. Haz clic dentro de la barra, luego selecciona el paso 5, Utilities, y extrae los dos elementos de línea que se crearon.
Ten en cuenta que la estructura dentro de la casilla de entrada reflejará el formato del mensaje de Slack. Debe tener un título y un espacio, seguido de una URL entre paréntesis:
[TITLE] ([LINK])
Y queremos que los resultados aparezcan en una línea separada. Para ello, en la casilla que se encuentra debajo del encabezado Separator, agrega el carácter especial: [:nueva línea:]
:
[TITLE] ([LINK])
[TITLE] ([LINK])
[TITLE] ([LINK])
[TITLE] ([LINK])
Dentro del Zap, se verá así:
Y ahora, el último paso. Enviaremos los resultados de búsqueda a un chat específico de Slack.
Transmisión final
Haz clic en Add a step y escribe Action/Search...
Selecciona Slack.
Debajo de Create: Selecciona Send Channel Message y luego haz clic en save + continue.
Selecciona tu cuenta de Slack y haz clic en Continue…
Elige el canal en el que funcionará Zap: #random es una buena opción para realizar pruebas.
Debajo del encabezado Message Text, haz clic en la casilla, y luego selecciona la salida del paso 6:
Para que sea más personalizado, puedes darle un nombre al bot de búsqueda y proporcionarle un avatar atractivo.
Copia el enlace de imagen de Elastic App Search desde este blog haciendo clic derecho en la siguiente imagen, si lo deseas:
BOT DE BÚSQUEDA, ¡LEVÁNTATE Y ANDA!
Una vez que todo esté configurado, habilita el Zap:
Ingresa a Slack y escribe: "search for something
" y haz un par de consultas.
¡Felicitaciones! Ahora tienes un bot de búsqueda inteligente en Slack.
Resumen
Un bot de búsqueda puede ser muy útil. Es posible que quieras buscar en una base de conocimientos interna o buscar un error en un grupo grande de registros de servidor. Cualquiera que sea el caso, crea un bot de búsqueda basado en Elastic App Search y conéctate a Slack sin complicaciones.
Puedes comenzar hoy con App Search con una [versión de prueba gratuita de 14 días] (https://www.elastic.co/es/cloud/app-search-service) de nuestra versión alojada o [descargar la versión beta] (https://www.elastic.co/es/downloads/app-search) de la versión autoadministrada. Cada nueva versión de prueba incluye un conjunto de datos de muestra, por lo que puedes experimentar antes de comenzar a usar tus propios datos.