diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx
index 027c793..7a2171c 100644
--- a/packages/docs/src/routes/docs/flows/index.mdx
+++ b/packages/docs/src/routes/docs/flows/index.mdx
@@ -1,6 +1,6 @@
import Navigation from '../../../components/widgets/Navigation'
-# Flow (Flujos)
+# Flow
Los flujos hace referencia al hecho de construir un flujo de conversion. Esto es un flow podemos observar que estan presente dos metodos importantes **addKeyword** y el **addAnswer**.
@@ -23,6 +23,142 @@ const flowPrincipal = addKeyword(['hola', 'alo'])
---
+## addKeyword()
+
+Esta funcion se utliza para iniciar un flujo de conversion. Recibe un `string` o un `array`
+de string `['hola','buenas']`.
+
+**Opciones**
+
+- sensitive: Sensible a mayusculas y minusculas por defecto `false`
+
+```js
+const { addKeyword } = require('@bot-whatsapp/bot')
+
+const flowString = addKeyword('hola')
+
+const flowArray = addKeyword(['hola', 'alo'])
+
+const flowSensitive = addKeyword(['hola', 'alo'], {
+ sensitive: true,
+})
+```
+
+---
+
+## addAnswer()
+
+Esta funcion se utliza para responder un mensaje despues del `addKeyword()`
+
+**Opciones**
+
+- delay: 0 (milisegundos)
+- media: url de imagen
+- buttons: array `[{body:'Boton1'}, {body:'Boton2'}, {body:'Boton3'}]`
+- capture: false (para esperar respuesta)
+- child: Objecto tipo flujo o arra de flujos hijos
+
+```js
+const { addKeyword } = require('@bot-whatsapp/bot')
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Este mensaje se enviara 1 segundo despues',
+ {
+ delay: 1000,
+ }
+)
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Este mensaje envia una imagen',
+ {
+ media: 'https://i.imgur.com/0HpzsEm.png',
+ }
+)
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Este mensaje envia tres botones',
+ {
+ buttons: [
+ { body: 'Boton 1' },
+ { body: 'Boton 2' },
+ { body: 'Boton 3' },
+ ],
+ }
+)
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Este mensaje espera una respueta del usuario',
+ {
+ capture: true,
+ }
+)
+```
+
+---
+
+## ctx
+
+Este argumento se utiliza para obtener el contexto de la conversación
+
+```js
+const { addKeyword } = require('@bot-whatsapp/bot')
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Indica cual es tu email',
+ null,
+ (ctx) => {
+ console.log('👉 Informacion del contexto: ', ctx)
+ }
+)
+```
+
+---
+
+## fallBack()
+
+Esta funcion se utliza para volver a enviar el ultimo mensaje abajo un ejemplo.
+En el ejemplo de abajo esperamos que el usuario ingrese un mensaje que contenga `@` sino contiene
+se repetira el mensaje `Indica cual es tu email`
+
+```js
+const { addKeyword } = require('@bot-whatsapp/bot')
+
+const flowString = addKeyword('hola').addAnswer(
+ 'Indica cual es tu email',
+ null,
+ (ctx, { fallBack }) => {
+ if (!ctx.body.includes('@')) return fallBack()
+ }
+)
+```
+
+---
+
+## flowDynamic()
+
+Esta funcion se utliza para devolver mensajes dinamicos que pueden venir de una API o Base de datos.
+La funcion recibe un array que debe contener la siguiente estrucutura:
+
+`[{body:'Mensaje}, {body:'Mensaje2}]`
+
+```js
+const { addKeyword } = require('@bot-whatsapp/bot')
+
+const flowString = addKeyword('hola')
+ .addAnswer('Indica cual es tu email', null, async (ctx, {flowDynamic}) => {
+ const mensajesDB = () => {
+ const categories = db.find(...)
+ const mapDatos = categories.map((c) => ({body:c.name}))
+ return mapDatos
+ }
+ await flowDynamic(mensajesDB())
+ })
+
+
+```
+
+---
+
+ En el ejemplo de abajo puedes ver como una sugerencia de como puede ser
+ utilizando variables de entorno
+
+
+```js
+const main = async () => {
+ const adapterDB = new MockAdapter()
+ const adapterFlow = createFlow([flowPrincipal])
+
+ const adapterProvider = createProvider(MetaProvider, {
+ jwtToken: process.env.JWTOKEN, //EAARBW3ZBGU0UBAACDjtQIzI8JuEa.............
+ numberId: process.env.NUMBER_ID, //103975305758520
+ verifyToken: process.env.VERIFY_TOKEN, //LO_QUE_SEA
+ })
+
+ createBot({
+ flow: adapterFlow,
+ provider: adapterProvider,
+ database: adapterDB,
+ })
+}
+
+main()
+```
+
+---
+
+Luego de ejecutar el bot encontraras un mensaje en la consola similar al siguiente.
+Donde podrás encontrar la URL para tu **webhook**
+
+```shell
+$ npm start
+
+> bot-whatsapp-base-meta-memory@1.0.0 start
+> node app.js
+
+
+[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"
+[meta]: POST http://localhost:3000/webhook
+[meta]: Más información en la documentacion
+```
+
+---
+
+## ¿Ahora que hago?
+
+Podrás observar que el bot inicia un servicio HTTP (endpoint) que debe estar en un servidor en linea para que puedas conectarlo con Meta.
+
+---
+
+### Opción 1:
+
+Puedes hacer pruebas en local atrevés de un servidor proxy tunnel.
+Descarga **[ngork](https://ngrok.com/download)** es una herramienta gratuita que nos ayudara con esto.
+
+
+
+---
+
+Esto genera una URL en línea que podemos usar en la parte de **WebHook** de Meta
+
+
+
+---
+
+
+
+---
+
+
+
+---
+
+
+
+---
+
+### Opción 2:
+
+Si ya tienes desplegado tu bot en un servidor tienes que obtener la IP publica o subdominio que te proporcionaron. **Ejemplo** si estas usando
+[Railway](https://railway.app/) puedes ir a la seccion de ajustes y generar un subdominio. Ya tendriamos el **WebHook**
+`https://base-twilio-memory-production.up.railway.app/twilio-hook`
+
+
+
+---
+
+
+
+---
+
+
diff --git a/packages/portal/package.json b/packages/portal/package.json
index f32cf85..9fd3307 100644
--- a/packages/portal/package.json
+++ b/packages/portal/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/portal",
- "version": "0.0.9-alpha.0",
+ "version": "0.0.17-alpha.0",
"description": "Portal WEB para escanear QR",
"main": "./lib/portal.http.cjs",
"scripts": {
diff --git a/packages/provider/package.json b/packages/provider/package.json
index ffd19f5..683ca66 100644
--- a/packages/provider/package.json
+++ b/packages/provider/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/provider",
- "version": "0.0.57-alpha.0",
+ "version": "0.0.65-alpha.0",
"description": "Esto es el conector a Twilio, Meta, etc...",
"main": "./lib/mock/index.cjs",
"keywords": [],
diff --git a/packages/provider/src/twilio/package.json b/packages/provider/src/twilio/package.json
index dd0a9bf..e4bb7d4 100644
--- a/packages/provider/src/twilio/package.json
+++ b/packages/provider/src/twilio/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "twilio": "3.84.0"
+ "twilio": "3.84.1"
}
}
diff --git a/scripts/github.js b/scripts/github.js
new file mode 100644
index 0000000..9277d83
--- /dev/null
+++ b/scripts/github.js
@@ -0,0 +1,47 @@
+const process = require('node:process')
+const { Octokit } = require('@octokit/core')
+
+const [PKG_ARG, GITHUB_TOKEN] = process.argv.slice(2) || [null]
+
+/**
+ * Publicar Release en Github
+ * @param {*} name
+ * @param {*} tag_name
+ * @param {*} auth
+ * @param {*} owner
+ * @param {*} repo
+ */
+const githubGithubRelease = async (
+ name = '',
+ tag_name = '',
+ auth = '',
+ owner = 'codigoencasa',
+ repo = 'bot-whatsapp'
+) => {
+ const octokit = new Octokit({
+ auth,
+ })
+
+ await octokit.request(`POST /repos/${owner}/${repo}/releases`, {
+ owner,
+ repo,
+ tag_name,
+ name,
+ body: 'Description of the release',
+ draft: false,
+ prerelease: false,
+ generate_release_notes: true,
+ })
+}
+
+const main = async () => {
+ if (PKG_ARG) {
+ const githubToken = GITHUB_TOKEN ? GITHUB_TOKEN.split('=').at(1) : null
+ const pkgNumber = PKG_ARG ? PKG_ARG.split('=').at(1) : null
+
+ if (pkgNumber)
+ await githubGithubRelease(`v${pkgNumber}`, pkgNumber, githubToken)
+ }
+}
+
+main()
diff --git a/starters/apps/base-baileys-json/Dockerfile b/starters/apps/base-baileys-json/Dockerfile
index 14b07b2..7fb6d5d 100644
--- a/starters/apps/base-baileys-json/Dockerfile
+++ b/starters/apps/base-baileys-json/Dockerfile
@@ -1,7 +1,9 @@
-FROM node:lts-bullseye as bot
+FROM node:18-bullseye as bot
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
ARG PORT
CMD ["npm", "start"]
diff --git a/starters/apps/base-baileys-json/README.md b/starters/apps/base-baileys-json/README.md
index a31dc9f..13d73f2 100644
--- a/starters/apps/base-baileys-json/README.md
+++ b/starters/apps/base-baileys-json/README.md
@@ -5,26 +5,8 @@
-**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes. Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
+**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes. Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver documentación](https://bot-whatsapp.netlify.app/)**
-```js
-const main = async () => {
- const adapterDB = new MockAdapter()
- const adapterFlow = createFlow([flowPrincipal])
-
- const adapterProvider = createProvider(BaileysProvider, {
- accountSid: process.env.ACC_SID,
- authToken: process.env.ACC_TOKEN,
- vendorNumber: process.env.ACC_VENDOR,
- })
-
- createBot({
- flow: adapterFlow,
- provider: adapterProvider,
- database: adapterDB,
- })
-}
-```
```
npm install
diff --git a/starters/apps/base-baileys-json/app.js b/starters/apps/base-baileys-json/app.js
index 99ecf65..b06887c 100644
--- a/starters/apps/base-baileys-json/app.js
+++ b/starters/apps/base-baileys-json/app.js
@@ -5,86 +5,90 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const JsonFileAdapter = require('@bot-whatsapp/database/json')
-/**
- * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
- *
- * Menu Principal
- * - SubMenu 1
- * - Submenu 1.1
- * - Submenu 2
- * - Submenu 2.1
- *
- * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
- */
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
-
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
const adapterDB = new JsonFileAdapter()
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
+
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
+
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-baileys-json/package.json b/starters/apps/base-baileys-json/package.json
index 7693630..1ecbe56 100644
--- a/starters/apps/base-baileys-json/package.json
+++ b/starters/apps/base-baileys-json/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-bailey-json",
+ "name": "base-bailey-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -13,6 +13,7 @@
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest",
+ "@bot-whatsapp/portal": "latest",
"@adiwajshing/baileys": "4.4.0",
"mime-types": "2.1.35",
"wa-sticker-formatter": "4.3.2"
diff --git a/starters/apps/base-baileys-json/public/index.html b/starters/apps/base-baileys-json/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-baileys-json/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-baileys-json/server.http.js b/starters/apps/base-baileys-json/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-baileys-json/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-baileys-memory/Dockerfile b/starters/apps/base-baileys-memory/Dockerfile
index 14b07b2..7fb6d5d 100644
--- a/starters/apps/base-baileys-memory/Dockerfile
+++ b/starters/apps/base-baileys-memory/Dockerfile
@@ -1,7 +1,9 @@
-FROM node:lts-bullseye as bot
+FROM node:18-bullseye as bot
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
ARG PORT
CMD ["npm", "start"]
diff --git a/starters/apps/base-baileys-memory/README.md b/starters/apps/base-baileys-memory/README.md
index a31dc9f..13d73f2 100644
--- a/starters/apps/base-baileys-memory/README.md
+++ b/starters/apps/base-baileys-memory/README.md
@@ -5,26 +5,8 @@
-**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes. Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
+**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes. Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver documentación](https://bot-whatsapp.netlify.app/)**
-```js
-const main = async () => {
- const adapterDB = new MockAdapter()
- const adapterFlow = createFlow([flowPrincipal])
-
- const adapterProvider = createProvider(BaileysProvider, {
- accountSid: process.env.ACC_SID,
- authToken: process.env.ACC_TOKEN,
- vendorNumber: process.env.ACC_VENDOR,
- })
-
- createBot({
- flow: adapterFlow,
- provider: adapterProvider,
- database: adapterDB,
- })
-}
-```
```
npm install
diff --git a/starters/apps/base-baileys-memory/app.js b/starters/apps/base-baileys-memory/app.js
index 522bb6c..3d05e79 100644
--- a/starters/apps/base-baileys-memory/app.js
+++ b/starters/apps/base-baileys-memory/app.js
@@ -5,86 +5,90 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MockAdapter = require('@bot-whatsapp/database/mock')
-/**
- * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
- *
- * Menu Principal
- * - SubMenu 1
- * - Submenu 1.1
- * - Submenu 2
- * - Submenu 2.1
- *
- * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
- */
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
-
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
+
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
+
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-baileys-memory/package.json b/starters/apps/base-baileys-memory/package.json
index 481e00a..2d01103 100644
--- a/starters/apps/base-baileys-memory/package.json
+++ b/starters/apps/base-baileys-memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-bailey-memory",
+ "name": "base-bailey-memory",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -13,6 +13,7 @@
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest",
+ "@bot-whatsapp/portal": "latest",
"@adiwajshing/baileys": "4.4.0",
"mime-types": "2.1.35",
"wa-sticker-formatter": "4.3.2"
diff --git a/starters/apps/base-baileys-memory/public/index.html b/starters/apps/base-baileys-memory/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-baileys-memory/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-baileys-memory/server.http.js b/starters/apps/base-baileys-memory/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-baileys-memory/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-baileys-mongo/Dockerfile b/starters/apps/base-baileys-mongo/Dockerfile
index 14b07b2..7fb6d5d 100644
--- a/starters/apps/base-baileys-mongo/Dockerfile
+++ b/starters/apps/base-baileys-mongo/Dockerfile
@@ -1,7 +1,9 @@
-FROM node:lts-bullseye as bot
+FROM node:18-bullseye as bot
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
ARG PORT
CMD ["npm", "start"]
diff --git a/starters/apps/base-baileys-mongo/app.js b/starters/apps/base-baileys-mongo/app.js
index 277115d..2de3ad6 100644
--- a/starters/apps/base-baileys-mongo/app.js
+++ b/starters/apps/base-baileys-mongo/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MongoAdapter = require('@bot-whatsapp/database/mongo')
@@ -29,58 +28,72 @@ const MONGO_DB_NAME = 'db_bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -95,6 +108,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-baileys-mongo/package.json b/starters/apps/base-baileys-mongo/package.json
index d828a88..c2f8624 100644
--- a/starters/apps/base-baileys-mongo/package.json
+++ b/starters/apps/base-baileys-mongo/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-bailey-mongo",
+ "name": "base-bailey-mongo",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-baileys-mongo/public/index.html b/starters/apps/base-baileys-mongo/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-baileys-mongo/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-baileys-mongo/server.http.js b/starters/apps/base-baileys-mongo/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-baileys-mongo/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-baileys-mysql/Dockerfile b/starters/apps/base-baileys-mysql/Dockerfile
index 14b07b2..7fb6d5d 100644
--- a/starters/apps/base-baileys-mysql/Dockerfile
+++ b/starters/apps/base-baileys-mysql/Dockerfile
@@ -1,7 +1,9 @@
-FROM node:lts-bullseye as bot
+FROM node:18-bullseye as bot
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
ARG PORT
CMD ["npm", "start"]
diff --git a/starters/apps/base-baileys-mysql/app.js b/starters/apps/base-baileys-mysql/app.js
index 02a13c0..d3dbbe5 100644
--- a/starters/apps/base-baileys-mysql/app.js
+++ b/starters/apps/base-baileys-mysql/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
@@ -30,58 +29,72 @@ const MYSQL_DB_NAME = 'bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -98,6 +111,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-baileys-mysql/package.json b/starters/apps/base-baileys-mysql/package.json
index 4a7b07a..7ecb417 100644
--- a/starters/apps/base-baileys-mysql/package.json
+++ b/starters/apps/base-baileys-mysql/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-bailey-mysql",
+ "name": "base-bailey-mysql",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-baileys-mysql/public/index.html b/starters/apps/base-baileys-mysql/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-baileys-mysql/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-baileys-mysql/server.http.js b/starters/apps/base-baileys-mysql/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-baileys-mysql/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-meta-json/Dockerfile b/starters/apps/base-meta-json/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-meta-json/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-meta-json/app.js b/starters/apps/base-meta-json/app.js
index 49dd430..cc4c7ac 100644
--- a/starters/apps/base-meta-json/app.js
+++ b/starters/apps/base-meta-json/app.js
@@ -20,58 +20,72 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-meta-json/package.json b/starters/apps/base-meta-json/package.json
index 3243406..e034a53 100644
--- a/starters/apps/base-meta-json/package.json
+++ b/starters/apps/base-meta-json/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-meta-json",
+ "name": "base-meta-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-meta-memory/Dockerfile b/starters/apps/base-meta-memory/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-meta-memory/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-meta-memory/app.js b/starters/apps/base-meta-memory/app.js
index 288929c..c8201e8 100644
--- a/starters/apps/base-meta-memory/app.js
+++ b/starters/apps/base-meta-memory/app.js
@@ -20,58 +20,72 @@ const MockAdapter = require('@bot-whatsapp/database/mock')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-meta-memory/package.json b/starters/apps/base-meta-memory/package.json
index f86e916..51da345 100644
--- a/starters/apps/base-meta-memory/package.json
+++ b/starters/apps/base-meta-memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-meta-memory",
+ "name": "base-meta-memory",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-meta-mongo/Dockerfile b/starters/apps/base-meta-mongo/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-meta-mongo/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-meta-mongo/app.js b/starters/apps/base-meta-mongo/app.js
index f40a6a2..18cd9ac 100644
--- a/starters/apps/base-meta-mongo/app.js
+++ b/starters/apps/base-meta-mongo/app.js
@@ -27,58 +27,72 @@ const MONGO_DB_NAME = 'db_bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-meta-mongo/package.json b/starters/apps/base-meta-mongo/package.json
index 94055f8..686ac63 100644
--- a/starters/apps/base-meta-mongo/package.json
+++ b/starters/apps/base-meta-mongo/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-meta-mongo",
+ "name": "base-meta-mongo",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-meta-mysql/Dockerfile b/starters/apps/base-meta-mysql/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-meta-mysql/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-meta-mysql/app.js b/starters/apps/base-meta-mysql/app.js
index 25b171c..102f977 100644
--- a/starters/apps/base-meta-mysql/app.js
+++ b/starters/apps/base-meta-mysql/app.js
@@ -28,58 +28,72 @@ const MYSQL_DB_NAME = 'bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-meta-mysql/package.json b/starters/apps/base-meta-mysql/package.json
index a9a71b0..45fe39e 100644
--- a/starters/apps/base-meta-mysql/package.json
+++ b/starters/apps/base-meta-mysql/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-meta-mysql",
+ "name": "base-meta-mysql",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-twilio-json/Dockerfile b/starters/apps/base-twilio-json/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-twilio-json/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-twilio-json/app.js b/starters/apps/base-twilio-json/app.js
index 190e842..047a126 100644
--- a/starters/apps/base-twilio-json/app.js
+++ b/starters/apps/base-twilio-json/app.js
@@ -20,58 +20,72 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-twilio-json/package.json b/starters/apps/base-twilio-json/package.json
index 4f5fdf4..15367a6 100644
--- a/starters/apps/base-twilio-json/package.json
+++ b/starters/apps/base-twilio-json/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-twilio-json",
+ "name": "base-twilio-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -11,7 +11,7 @@
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
- "twilio": "3.84.0",
+ "twilio": "3.84.1",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
diff --git a/starters/apps/base-twilio-memory/Dockerfile b/starters/apps/base-twilio-memory/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-twilio-memory/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-twilio-memory/app.js b/starters/apps/base-twilio-memory/app.js
index 9730709..cc1d16b 100644
--- a/starters/apps/base-twilio-memory/app.js
+++ b/starters/apps/base-twilio-memory/app.js
@@ -20,58 +20,72 @@ const MockAdapter = require('@bot-whatsapp/database/mock')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-twilio-memory/package.json b/starters/apps/base-twilio-memory/package.json
index e71ca5a..bf1501c 100644
--- a/starters/apps/base-twilio-memory/package.json
+++ b/starters/apps/base-twilio-memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-twilio-memory",
+ "name": "base-twilio-memory",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -11,7 +11,7 @@
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
- "twilio": "3.84.0",
+ "twilio": "3.84.1",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
diff --git a/starters/apps/base-twilio-mongo/Dockerfile b/starters/apps/base-twilio-mongo/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-twilio-mongo/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-twilio-mongo/app.js b/starters/apps/base-twilio-mongo/app.js
index 9e5e3f7..dcabb99 100644
--- a/starters/apps/base-twilio-mongo/app.js
+++ b/starters/apps/base-twilio-mongo/app.js
@@ -27,58 +27,72 @@ const MONGO_DB_NAME = 'db_bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-twilio-mongo/package.json b/starters/apps/base-twilio-mongo/package.json
index 4a8c063..06bdef2 100644
--- a/starters/apps/base-twilio-mongo/package.json
+++ b/starters/apps/base-twilio-mongo/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-twilio-mongo",
+ "name": "base-twilio-mongo",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -11,7 +11,7 @@
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
- "twilio": "3.84.0",
+ "twilio": "3.84.1",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
diff --git a/starters/apps/base-twilio-mysql/Dockerfile b/starters/apps/base-twilio-mysql/Dockerfile
new file mode 100644
index 0000000..7fb6d5d
--- /dev/null
+++ b/starters/apps/base-twilio-mysql/Dockerfile
@@ -0,0 +1,9 @@
+FROM node:18-bullseye as bot
+WORKDIR /app
+COPY package*.json ./
+RUN npm i
+COPY . .
+ARG RAILWAY_STATIC_URL
+ARG PUBLIC_URL
+ARG PORT
+CMD ["npm", "start"]
diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js
index 7100f9c..4725cd3 100644
--- a/starters/apps/base-twilio-mysql/app.js
+++ b/starters/apps/base-twilio-mysql/app.js
@@ -29,58 +29,72 @@ const MYSQL_DB_NAME = 'bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
diff --git a/starters/apps/base-twilio-mysql/package.json b/starters/apps/base-twilio-mysql/package.json
index d4c4d37..90149e2 100644
--- a/starters/apps/base-twilio-mysql/package.json
+++ b/starters/apps/base-twilio-mysql/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-twilio-mysql",
+ "name": "base-twilio-mysql",
"version": "1.0.0",
"description": "",
"main": "app.js",
@@ -11,7 +11,7 @@
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
- "twilio": "3.84.0",
+ "twilio": "3.84.1",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
diff --git a/starters/apps/base-venom-json/app.js b/starters/apps/base-venom-json/app.js
index c742f78..120deee 100644
--- a/starters/apps/base-venom-json/app.js
+++ b/starters/apps/base-venom-json/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const VenomProvider = require('@bot-whatsapp/provider/venom')
const JsonFileAdapter = require('@bot-whatsapp/database/json')
@@ -22,58 +21,72 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -85,6 +98,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-venom-json/package.json b/starters/apps/base-venom-json/package.json
index 88d7f6f..4d10427 100644
--- a/starters/apps/base-venom-json/package.json
+++ b/starters/apps/base-venom-json/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-venom-json",
+ "name": "base-venom-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-venom-json/public/index.html b/starters/apps/base-venom-json/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-venom-json/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-venom-json/server.http.js b/starters/apps/base-venom-json/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-venom-json/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js
index 6f89ef2..8402cf9 100644
--- a/starters/apps/base-venom-memory/app.js
+++ b/starters/apps/base-venom-memory/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const VenomProvider = require('@bot-whatsapp/provider/venom')
const MockAdapter = require('@bot-whatsapp/database/mock')
@@ -22,58 +21,72 @@ const MockAdapter = require('@bot-whatsapp/database/mock')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -85,6 +98,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-venom-memory/package.json b/starters/apps/base-venom-memory/package.json
index dfe5408..57af4e1 100644
--- a/starters/apps/base-venom-memory/package.json
+++ b/starters/apps/base-venom-memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-venom-memory",
+ "name": "base-venom-memory",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-venom-memory/public/index.html b/starters/apps/base-venom-memory/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-venom-memory/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-venom-memory/server.http.js b/starters/apps/base-venom-memory/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-venom-memory/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js
index d8de982..2f4f16a 100644
--- a/starters/apps/base-venom-mongo/app.js
+++ b/starters/apps/base-venom-mongo/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const VenomProvider = require('@bot-whatsapp/provider/venom')
const MongoAdapter = require('@bot-whatsapp/database/mongo')
@@ -29,58 +28,72 @@ const MONGO_DB_NAME = 'db_bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -95,6 +108,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-venom-mongo/package.json b/starters/apps/base-venom-mongo/package.json
index 3b46613..0d84d2b 100644
--- a/starters/apps/base-venom-mongo/package.json
+++ b/starters/apps/base-venom-mongo/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-venom-mongo",
+ "name": "base-venom-mongo",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-venom-mongo/public/index.html b/starters/apps/base-venom-mongo/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-venom-mongo/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-venom-mongo/server.http.js b/starters/apps/base-venom-mongo/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-venom-mongo/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index 24da8ee..8c5c2db 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const VenomProvider = require('@bot-whatsapp/provider/venom')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
@@ -31,58 +30,72 @@ const MYSQL_DB_NAME = 'bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -99,6 +112,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-venom-mysql/package.json b/starters/apps/base-venom-mysql/package.json
index 670fd00..a029a70 100644
--- a/starters/apps/base-venom-mysql/package.json
+++ b/starters/apps/base-venom-mysql/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-venom-mysql",
+ "name": "base-venom-mysql",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-venom-mysql/public/index.html b/starters/apps/base-venom-mysql/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-venom-mysql/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-venom-mysql/server.http.js b/starters/apps/base-venom-mysql/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-venom-mysql/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-wweb-json/app.js b/starters/apps/base-wweb-json/app.js
index 31f03dd..729ac2a 100644
--- a/starters/apps/base-wweb-json/app.js
+++ b/starters/apps/base-wweb-json/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const JsonFileAdapter = require('@bot-whatsapp/database/json')
@@ -22,58 +21,72 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -85,6 +98,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-wweb-json/package.json b/starters/apps/base-wweb-json/package.json
index 9abc893..d55dfeb 100644
--- a/starters/apps/base-wweb-json/package.json
+++ b/starters/apps/base-wweb-json/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-wweb-json",
+ "name": "base-wweb-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-wweb-json/public/index.html b/starters/apps/base-wweb-json/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-wweb-json/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-wweb-json/server.http.js b/starters/apps/base-wweb-json/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-wweb-json/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-wweb-memory/app.js b/starters/apps/base-wweb-memory/app.js
index 5318283..d6a567a 100644
--- a/starters/apps/base-wweb-memory/app.js
+++ b/starters/apps/base-wweb-memory/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MockAdapter = require('@bot-whatsapp/database/mock')
@@ -22,58 +21,72 @@ const MockAdapter = require('@bot-whatsapp/database/mock')
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -85,6 +98,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-wweb-memory/package.json b/starters/apps/base-wweb-memory/package.json
index fbf9400..d9c3ee0 100644
--- a/starters/apps/base-wweb-memory/package.json
+++ b/starters/apps/base-wweb-memory/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-wweb-memory",
+ "name": "base-wweb-memory",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-wweb-memory/public/index.html b/starters/apps/base-wweb-memory/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-wweb-memory/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-wweb-memory/server.http.js b/starters/apps/base-wweb-memory/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-wweb-memory/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js
index 34f3887..a8e8aad 100644
--- a/starters/apps/base-wweb-mongo/app.js
+++ b/starters/apps/base-wweb-mongo/app.js
@@ -5,11 +5,10 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
+const QRPortalWeb = require('@bot-whatsapp/portal')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MongoAdapter = require('@bot-whatsapp/database/mongo')
-require('./server.http')
-
/**
* Declaramos las conexiones de Mongo
*/
@@ -29,58 +28,72 @@ const MONGO_DB_NAME = 'db_bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -95,6 +108,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-wweb-mongo/package.json b/starters/apps/base-wweb-mongo/package.json
index c58767a..e7ecebb 100644
--- a/starters/apps/base-wweb-mongo/package.json
+++ b/starters/apps/base-wweb-mongo/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-wweb-mongo",
+ "name": "base-wweb-mongo",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-wweb-mongo/public/index.html b/starters/apps/base-wweb-mongo/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-wweb-mongo/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-
-
-
diff --git a/starters/apps/base-wweb-mongo/server.http.js b/starters/apps/base-wweb-mongo/server.http.js
deleted file mode 100644
index 217bd71..0000000
--- a/starters/apps/base-wweb-mongo/server.http.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const http = require('http')
-const fs = require('fs')
-const path = require('path')
-
-const PORT = process.env.PORT || 3000
-
-/**
- * Levantar un HTTP Server
- */
-http.createServer(function (req, res) {
- var cssPath = undefined
- var fileStream = undefined
- var imagePath = undefined
-
- if (req.url === '/') {
- fs.readFile('./public/index.html', 'UTF-8', function (err, html) {
- res.writeHead(200, { 'Content-Type': 'text/html' })
- res.end(html)
- })
- } else if (req.url.match('.css$')) {
- cssPath = path.join(__dirname, 'public', req.url)
- fileStream = fs.createReadStream(cssPath, 'UTF-8')
- res.writeHead(200, { 'Content-Type': 'text/css' })
- fileStream.pipe(res)
- } else if (req.url.match('.png$')) {
- imagePath = path.join(__dirname, req.url)
- fileStream = fs.createReadStream(imagePath)
- res.writeHead(200, { 'Content-Type': 'image/png' })
- fileStream.pipe(res)
- } else {
- res.writeHead(404, { 'Content-Type': 'text/html' })
- res.end('No Page Found')
- }
-}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))
diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js
index 2095842..68f7f37 100644
--- a/starters/apps/base-wweb-mysql/app.js
+++ b/starters/apps/base-wweb-mysql/app.js
@@ -5,8 +5,7 @@ const {
addKeyword,
} = require('@bot-whatsapp/bot')
-require('./server.http')
-
+const QRPortalWeb = require('@bot-whatsapp/portal')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
@@ -31,58 +30,72 @@ const MYSQL_DB_NAME = 'bot'
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
-const flowBolsos2 = addKeyword(['bolsos2', '2'])
- .addAnswer('🤯 *MUCHOS* bolsos ...')
- .addAnswer('y mas bolsos... bla bla')
+const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([
+ '📄 Aquí tenemos el flujo secundario',
+])
-const flowZapatos2 = addKeyword(['zapatos2', '2'])
- .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
- .addAnswer('y algunas otras cosas.')
+const flowDocs = addKeyword([
+ 'doc',
+ 'documentacion',
+ 'documentación',
+]).addAnswer(
+ [
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
+ 'https://bot-whatsapp.netlify.app/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
- .addAnswer('🤯 Veo que elegiste zapatos')
- .addAnswer('Tengo muchos zapatos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Zapatos2*', 'para mas información'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowZapatos2]
- )
+const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
+ [
+ '🙌 Aquí encontras un ejemplo rapido',
+ 'https://bot-whatsapp.netlify.app/docs/example/',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
- .addAnswer('🙌 Veo que elegiste bolsos')
- .addAnswer('Tengo muchos bolsos...bla bla')
- .addAnswer(
- ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos2]
- )
+const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
+ [
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
+ '[*patreon*] https://www.patreon.com/leifermendez',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
-/**
- * Declarando flujo principal
- */
+const flowDiscord = addKeyword(['discord']).addAnswer(
+ [
+ '🤪 Únete al discord',
+ 'https://link.codigoencasa.com/DISCORD',
+ '\n*2* Para siguiente paso.',
+ ],
+ null,
+ null,
+ [flowSecundario]
+)
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
.addAnswer(
- ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
- { capture: true },
- (ctx) => {
- console.log('Aqui puedes ver más info del usuario...')
- console.log('Puedes enviar un mail, hook, etc..')
- console.log(ctx)
- },
- [flowBolsos, flowZapatos]
+ [
+ 'te comparto los siguientes links de interes sobre el proyecto',
+ '👉 *doc* para ver la documentación',
+ '👉 *gracias* para ver la lista de videos',
+ '👉 *discord* unirte al discord',
+ ],
+ null,
+ null,
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
)
const main = async () => {
@@ -99,6 +112,7 @@ const main = async () => {
provider: adapterProvider,
database: adapterDB,
})
+ QRPortalWeb()
}
main()
diff --git a/starters/apps/base-wweb-mysql/package.json b/starters/apps/base-wweb-mysql/package.json
index b1c44ff..3ab34d5 100644
--- a/starters/apps/base-wweb-mysql/package.json
+++ b/starters/apps/base-wweb-mysql/package.json
@@ -1,5 +1,5 @@
{
- "name": "bot-whatsapp-base-wweb-mysql",
+ "name": "base-wweb-mysql",
"version": "1.0.0",
"description": "",
"main": "app.js",
diff --git a/starters/apps/base-wweb-mysql/public/index.html b/starters/apps/base-wweb-mysql/public/index.html
deleted file mode 100644
index 202b50c..0000000
--- a/starters/apps/base-wweb-mysql/public/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
- 🤖 Crear chatbot WhatsApp en minutos
-
-
-
-
-
-
-
Whatsapp QR
-
- F5 para actualizar, el codigo se actualiza cada minuto.
- Con esta libreria, puedes configurar respuestas
- automatizadas para preguntas frecuentes , recibir y
- responder mensajes de manera automatizada, y hacer un
- seguimiento de las interacciones con los clientes. Además,
- nuestro Chatbot se integra fácilmente con otros sistemas y
- herramientas que ya esté utilizando en su negocio.
-