Índice:
- ¿Para qué sirve el módulo de Recursos?
- Cómo acceder al módulo de Recursos
- Creación de un contenido
- Conoce la estructura de enrutadores dentro de Blip
- Aplicaciones en el módulo de Recursos
- Códigos
- Contenidos
- ¿Cómo crear claves de configuración?
- API de Recursos
¿Para qué sirve el módulo de Recursos?
El módulo de recursos te permite crear contenido para tus chatbots, que se puede utilizar fácilmente a través de la variable "resource" en tu flujo.
¿Cómo acceder al módulo de Recursos?
Para acceder, debes ingresar a tu chatbot o enrutador y hacer clic en el menú […] > Contenidos > Recursos:
Creación de un contenido
Después de acceder al módulo, puedes agregar tu contenido utilizando el botón + Agregar nuevo y completar con el contenido deseado:
- Debes proporcionar una Clave; esta clave se utilizará en tu flujo siempre que desees utilizar el contenido de este recurso, por lo tanto, no crees nombres largos ni con caracteres especiales. Limítate a usar solo letras. Una sugerencia es utilizar camelCase.
- Luego, selecciona el tipo de contenido que estás creando. Hay una lista con varios tipos disponibles utilizando los componentes de Blip, pero los principales son JSON y Texto. Con estos dos tipos, podrás agregar cualquier contenido.
- Por último, debes agregar tu contenido de acuerdo con el tipo seleccionado anteriormente.
Aquí tienes un ejemplo de recursos con contenido JSON:
Una vez que hayas creado un recurso, este puede ser accedido por uno o varios chatbots, dependiendo de la estructura de tu chatbot. Los recursos son una funcionalidad poderosa cuando se combinan con una estructura de enrutador y varios subbots, ya que podrás acceder al contenido de tus recursos en cualquiera de los subbots.
Conoce la estructura de enrutadores dentro de Blip
También puedes tener una estructura de enrutador pero no compartir recursos entre los subbots. Todo esto dependerá de la estructura de tu chatbot.
¿Por qué depende tanto de la estructura de mi chatbot?
Para explicarlo mejor, a continuación se ilustrarán algunos escenarios posibles combinando la estructura con los recursos:
1º escenario
.
Note que en este ejemplo existe un recurso llamado "nombre" tanto en el enrutador como en el subbot. Debido al contexto del enrutador activado en los subbots, prevalecerá el recurso del enrutador.
2º escenario
En este escenario, la única diferencia con el primer escenario es que el contexto del enrutador ahora está desactivado. Aunque el enrutador tiene un recurso llamado "nombre", prevalecerá el recurso del subbot.
En ambos escenarios anteriores, lo que controlará el contenido a mostrar será:
- Donde agregaste el recurso.
- Si el contexto del enrutador está activado/desactivado en los subbots.
En esta estructura, también podrías tener uno de los tres subbots con el contexto del enrutador desactivado, mientras que los otros dos estarían con el contexto activado.
3º escenario
En este escenario, tenemos 2 enrutadores conectados a los mismos subbots. De esta manera, puedes hacer que tu solución sea escalable, pudiendo tener varios canales conectados en una sola estructura de subbots.
En este escenario, para que la solución sea escalable, es primordial tener el contexto del enrutador activado en los subbots. El enrutador controlará siempre los contenidos, y cuando interactúes con WhatsApp conectado al Enrutador#1, recibirás lo que esté en el contenido registrado en el recurso del Enrutador#1; si conversas con WhatsApp conectado al Enrutador#2, se mostrará el contenido del Enrutador#2... y así sucesivamente para todos los enrutadores y canales que tengas conectados a la estructura.
Aplicaciones en el módulo de Recursos
Como hemos visto, el módulo de Recursos te permite centralizar los contenidos de tu chatbot, lo que facilita y agiliza el mantenimiento, además de hacerlo más escalable. Pero, ¿cómo se utiliza en la práctica?
Códigos
Puedes agregar este código en el módulo de Recursos y utilizarlo dentro de los scripts, mira lo fácil que es:
function run() {
var date = nowUTC();
var data = [formatDay(date.getUTCDate()), formatMonth(date.getUTCMonth()), date.getUTCFullYear()].join("/");
var hora = [formatDay(date.getUTCHours()), formatDay(date.getUTCMinutes()), formatDay(date.getUTCSeconds())].join(":");
return data + " " + hora;
}
function nowUTC() {
let offset = -3;
let now = new Date();
let utc_timestamp = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),
now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds());
return new Date(utc_timestamp + offset * 3600 * 1000);
}
function formatDay(day) {
return day < 10 ? `0${day}` : day;;
}
function formatMonth(month) {
month = parseInt(month) + 1;
return month < 10 ? `0${month}` : month;
}
Recurso llamado "gen.dateTime" con un script que genera la Fecha y Hora de Brasil (GMT-3) formateada.
Uso del recurso "gen.dateTime" dentro de un Script en el Flujo.
Contenidos
Al igual que con los códigos, tu flujo puede tener contenidos que necesitan actualizarse con frecuencia, y aquí es donde se recomienda el uso de recursos. Y cuando hablo de contenidos, no solo me refiero a texto, también puede ser un medio (imagen/video), un documento, un menú, etc.
Un ejemplo clásico es el nombre del asistente virtual que presenté en los escenarios anteriores, que cambia según cada estructura.
Cómo crear claves de configuración?
Puedes crear claves de configuración en tus recursos y crear trayectorias, contenidos e incluso menús de forma dinámica. Si necesitas activar o desactivar alguna configuración, solo tienes que ir al recurso.
Aquí tienes un ejemplo:
Recursos de configuración del flujo.
Script para la creación de un menú dinámico basado en los recursos de configuración.
Todavía sobre las configuraciones, también puedes utilizar el recurso en las Condiciones de Salida:
Condición de salida basada en los recursos de configuraciones.
API de los Recursos
Por último, pero no menos importante, puedes consultar nuestra documentación de los Recursos haciendo clic aquí. Allí encontrarás más información sobre este módulo y aprenderás cómo crear, editar y leer un recurso del bot a través de la API.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃