WEB API
Configuración y uso
La Web API proporciona una colección de métodos HTTP que sustentan la mayoría de las funciones de ZampiBot. Para comenzar a usar la Web API, siga el tutorial a continuación.
Uso usuario
Realice una llamada POST al archivo include/api.php de su instalación de ZampiBot. Puede utilizar el siguiente código para realizar las llamadas:
PHP
function zampibot_api($query) {
$ch = curl_init('YOUR-DOMAIN/chatbot.zampisoft.com/include/api.php');
$parameters = [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_USERAGENT => 'Support Board',
CURLOPT_POST => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_POSTFIELDS => http_build_query(array_merge(['token' => 'YOUR-TOKEN'], $query))
];
curl_setopt_array($ch, $parameters);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
Ejemplo de uso: zampibot_api(['function' => 'get-user', 'user_id' => 123]);
La variable $response contendrá la respuesta en formato JSON. Puede añadir nuevos argumentos en el array de la consulta: ['token' => '', 'function' => '', 'argument-name' => 'value', ...].
Reemplace las siguientes cadenas con los valores correctos:
- Reemplace
YOUR-DOMAINcon la URL de su sitio web. La URL completa debe apuntar al archivoinclude/api.phpde su instalación. Debería verse así:https://TU-DOMINIO.com/chatbot.zampisoft.com/include/api.php.- Si usa la versión Cloud, ingrese
https://chatbot.zampisoft.com.support/script/include/api.php.
- Si usa la versión Cloud, ingrese
- Reemplace
YOUR-TOKENcon el token de un usuario administrador. Puede obtener el token desde el área de Usuarios abriendo el perfil de un usuarioadmin. Solo se admiten tokens de administrador y solo los administradores pueden ver los tokens.- Si utiliza la versión cloud, debe usar el token de
Account > Installation > API token. - ¡Advertencia! Este token debe mantenerse siempre en secreto.
- Si utiliza la versión cloud, debe usar el token de
- Reemplace
METHOD-NAMEcon el nombre de la función de la API que desea utilizar. Obténgalos de la lista de métodos a continuación.
Información
- Algunas funciones están protegidas por razones de seguridad. Ingrese el código
$GLOBALS['SB_FORCE_ADMIN'] = trueantes de llamar a la función para ejecutarla correctamente. Ingrese el código$GLOBALS['SB_FORCE_ADMIN'] = falseinmediatamente después de la llamada a la función por seguridad. - Algunas funciones requieren los detalles del usuario activo. Use el código
$GLOBALS['SB_LOGIN'] = ['id' => '', 'first_name' => '', 'last_name' => '', 'email' => '', 'user_type' => '', 'department' => ''];para establecer el usuario activo. - Ejemplo de Postman: El token también se puede pasar como un parámetro de CABECERA (HEADER).

👥 WEB API: Usuarios
Métodos para gestionar usuarios, agentes y administradores.
get-user
Devuelve los detalles de un usuario.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-user.user_idRequerido: El ID del usuario.extra: Establézcalo entruepara obtener detalles adicionales del usuario. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"id": "123456",
"first_name": "John",
"last_name": "Doe",
"email": "johon@example.com",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-12 14:28:57",
"last_activity": "2020-05-12 14:28:57",
"department": null,
"token": "a521773c5a566a251c3fb00e93162b20ff955b12",
"password": "",
"details": [
{
"slug": "location",
"name": "Location",
"value": "New York, United States"
},
...
]
}
}
Devuelve {"success":true, "response":false} si no se encuentra el usuario.
get-user-by
Busca un usuario con los detalles especificados y lo devuelve.
Argumentos
byRequerido: El nombre del detalle del usuario. Valores aceptados:email,first_name,last_name,phone,[extra](reemplace [extra] con cualquier nombre de detalle adicional del usuario).value: El valor del campo.
Respuesta
JSON
{
"id": "881",
"first_name": "Don",
"last_name": "John",
"email": "example@example.com",
"user_type": "visitor",
"department": null
}
Devuelve {"success":true, "response":false} si no se encuentra el usuario.
get-user-extra
Devuelve los detalles adicionales de un usuario.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-user-extra.user_idRequerido: El ID del usuario.slug: El slug del ajuste a recuperar. Si no se establece, se devuelven todos los detalles del usuario. Por defecto:false.default: El valor por defecto a devolver si no se encuentran los detalles. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
{
"slug": "browser",
"name": "Browser",
"value": "Chrome"
},
...
]
}
Devuelve {"success":true, "response":[]} si no se encuentra el usuario.
get-user-language
Devuelve el código de idioma activo utilizado por el usuario. Por defecto, es el idioma del navegador del usuario.
Argumentos
user_idRequerido: El ID del usuario del que desea obtener el idioma.
Respuesta El código de idioma. Ejemplos: es, it. Devuelve false si el código es en o no se encuentra.
get-users
Devuelve los detalles de todos los usuarios.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-users.sorting: Establece el orden de los valores devueltos. Ingrese["column", "order"]y reemplacecolumncon uno de los siguientes:first_name,last_name,email,profile_image,user_type,creation_time,last_activity,department. ReemplaceorderconASCoDESC.user_types: Array en formato JSON de tipos de usuario a incluir. Sintaxis:["", "", "", ...]. Valores aceptados:visitor,lead,user,agent,admin. Por defecto: todos.search: La cadena a buscar.pagination: Entero de 1 a N para limitar el número de resultados. Ingrese 0 para los primeros 100 resultados, 1 para 101 a 200, etc.extra: Establézcalo entruepara incluir también todos los detalles extra. O como un array de slugs para incluir solo un subconjunto. Por defecto:false.user_ids: Array de IDs. Si se establece, devuelve solo los usuarios incluidos en el array. Sintaxis:["", "", "", ...]. Por defecto:false.department: Si se establece, devuelve solo usuarios con al menos una conversación asignada al ID de departamento provisto. Por defecto:false.tag: Si se establece, devuelve solo usuarios con al menos una conversación asignada a la etiqueta provista. Por defecto:false.source: Si se establece, devuelve solo usuarios con al menos una conversación del canal provisto. Fuentes:em,tk,wa,fb,ig,tw,wc,tx,gb,ln,vb. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "880",
"first_name": "User",
"last_name": "#29938",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:58:18",
"last_activity": "2020-05-13 09:07:39",
"department": null,
"token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
},
{
"id": "879",
"first_name": "User",
"last_name": "#86773",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:38:41",
"last_activity": "2020-05-13 08:58:12",
"department": null,
"token": "2e5064670707d06b661d04353f4a462ec927f19a"
}
...
]
}
get-new-users
Devuelve los usuarios creados después de la fecha o ID proporcionado.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-new-users.datetimeRequerido: ID de usuario o fecha y hora en formato:YYYY-MM-DD HH:MM:SS. Ej.2020-05-13 13:35:59. Puede eliminar la hora y dejar solo la fecha. Las fechas en la base de datos son UTC+0.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "880",
"first_name": "User",
"last_name": "#29938",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:58:18",
"last_activity": "2020-05-13 09:07:39",
"department": null,
"token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
},
{
"id": "879",
"first_name": "User",
"last_name": "#86773",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:38:41",
"last_activity": "2020-05-13 08:58:12",
"department": null,
"token": "2e5064670707d06b661d04353f4a462ec927f19a"
}
...
]
}
get-online-users
Devuelve los usuarios en línea, incluyendo agentes.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-online-users.exclude_id: Array de IDs de usuarios en formato JSON para excluir. Sintaxis:[123, 123, 123, ...].sorting: Nombre de la tabla de base de datos usada para ordenar. Por defecto:creation_time.agents: Establézcalo entruepara devolver solo agentes y administradores. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "881",
"first_name": "Don",
"last_name": "John",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 09:18:59",
"last_activity": "2020-05-13 09:32:34",
"department": null,
"token": "e435a5c67f4276cdb9c6fc19b7c015990ffc3268"
},
{
"id": "880",
"first_name": "User",
"last_name": "#29938",
"email": null,
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:58:18",
"last_activity": "2020-05-13 09:32:28",
"department": null,
"token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
}
...
]
}
get-users-with-details
Devuelve un array con los IDs y detalles de los usuarios que tienen los detalles solicitados.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-users-with-details.detailsRequerido: Array de detalles de usuario. Ej.[ "email", "phone" ].user_ids: Array o cadena separada por comas de IDs. Si se establece, solo se buscan estos usuarios. Useallofalsepara buscar en todos, oagentspara buscar solo agentes/admins. Por defecto:false.
Respuesta
JSON
{
"email": [
{
"id": 4561,
"value": "albert@example.com"
},
{
"id": 98436,
"value": "jessica@example.com"
},
...
],
"phone": [
{
"id": 12563,
"value": "+4462367136"
},
{
"id": 778956,
"value": "+4462999345"
},
...
],
...
}
get-agent
Devuelve los detalles de un agente o administrador.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-agent.agent_idRequerido: El ID del agente.
Respuesta
JSON
{
"success": true,
"response": {
"id": "123456",
"first_name": "John",
"last_name": "Doe",
"email": "johon@example.com",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "agent",
"creation_time": "2020-05-12 14:28:57",
"last_activity": "2020-05-12 14:28:57",
"department": null,
"token": "a521773c5a566a251c3fb00e93162b20ff955b12",
"password": "",
"details": [
{
"slug": "location",
"name": "Location",
"value": "New York, United States"
},
{
"slug": "country_code",
"name": "Country code",
"value": "America/New_York"
}
...
]
}
}
get-agents-ids
Devuelve un array con los IDs de los Agentes.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-agents-ids.admins: Establézcalo enfalsepara excluir a los administradores. Por defecto:true.
Respuesta [881, 153, ...]
get-user-from-conversation
Devuelve el ID y correo electrónico del usuario, o del último agente, de la conversación dada.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-user-from-conversation.conversation_idRequerido: El ID de la conversación.agent: Establézcalo entruepara obtener el último agente que respondió. Por defecto:false.
Respuesta
JSON
{
"id": "123456",
"email": "email@example.com"
}
agents-online
Verifica si al menos un agente o administrador está en línea.
Respuesta
JSON
{
"success": true,
"response": true
}
Devuelve true si hay agentes o admins en línea, o false si todos están desconectados.
search-users
Devuelve los usuarios que coinciden con la búsqueda.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesearch-users.searchRequerido: La cadena a buscar. Los detalles adicionales del usuario también son compatibles.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "881",
"first_name": "Don",
"last_name": "John",
"email": null,
"profile_image": "https://board.support/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 09:18:59",
"last_activity": "2020-05-13 09:32:34",
"department": null,
"token": "e435a5c67f4276cdb9c6fc19b7c015990ffc3268"
},
{
"id": "880",
"first_name": "User",
"last_name": "#29938",
"email": null,
"profile_image": "https://board.support/user.svg",
"user_type": "visitor",
"creation_time": "2020-05-13 08:58:18",
"last_activity": "2020-05-13 09:32:28",
"department": null,
"token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
}
...
]
}
Devuelve {"success":true, "response":[]} si no se encuentran usuarios.
add-user
Crea un nuevo usuario.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseadd-user.first_name: Nombre del usuario. Por defecto:User.last_name: Apellido. Por defecto:#RANDOM-NUMBER.email: Email del usuario. Por defecto: vacío.profile_image: Foto de perfil.password: Contraseña. Por defecto: vacío.user_type: Tipo de usuario. Valores:visitor,lead,user,agent,admin. Por defecto:visitorsi no hay email, sinouser.extra: Array de detalles adicionales en formato JSON. Detalles integrados (IDs):phone,city,language,country,birthday,company,facebook,twitter,linkedin,website,ip,country_code,browser,currency,location,os,time_zone,current_url. Sintaxis:{"ID": ["value", "Name"], ...}.
Respuesta
JSON
{
"success": true,
"response": 123456
}
Otras respuestas posibles: duplicate-email, invalid-user-type, MySQL error message.
update-user
Actualiza los detalles de un usuario existente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-user.user_idRequerido: El ID del usuario a actualizar.first_name,last_name,profile_image,password,user_type.email: IngreseNULLpara eliminar el correo electrónico.settings_extra: Array de detalles adicionales en formato JSON. Sintaxis: {"ID": ["value", "Name"], "ID": ["value", "Name"], ...}
Respuesta
JSON
{
"success": true,
"response": true
}
Other possible responses: duplicate-email, invalid-user-type, MySQL error message.
delete-user
Elimina un usuario y todas las conversaciones y mensajes vinculados.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-user.user_idRequerido: El ID del usuario a eliminar.
Respuesta
JSON
{
"success": true,
"response": true
}
delete-users
Elimina múltiples usuarios y sus datos vinculados.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-users.user_idsRequerido: Array de IDs de usuarios. Sintaxis:[123, 123, ...]
Respuesta
JSON
{
"success": true,
"response": true
}
is-online
Verifica si un usuario está en línea.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseis-online.user_idRequerido: El ID del usuario.
Respuesta true si está en línea, false si está desconectado.
current-url
Obtiene o establece la URL actual de un usuario o la última visitada.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecurrent-url.user_id: El ID del usuario.url: La URL para establecer como "Current URL". Si se establece, la función solo establecerá el valor y no devolverá ninguna URL.
Respuesta
JSON
{
"success": true,
"response": "https://charbot.zampisoft.com"
}
Returns {"success":true,"response":false} if the URL is not found. Returns {"success":true,"response":true} if the url argument is set.
count-users
Devuelve el conteo total de usuarios agrupados por tipo.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecount-users.
Respuesta
JSON
{
"success": true,
"response": {
"all": "335",
"lead": "288",
...
}
}
update-user-to-lead
Cambia el tipo de usuario a "lead" (cliente potencial).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-user-to-lead.user_idRequerido: El ID del usuario.
Respuesta
JSON
{
"success": true,
"response": true
}
get-avatar
Genera la imagen de perfil usando la inicial del nombre y apellido, la guarda y devuelve la URL.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-avatar.first_nameRequerido: Nombre del usuario.last_name: Apellido del usuario
Respuesta https://chatbot.zampisoft.com/uploads/13-04-21/9455859.png
get-bot-id
Devuelve el ID del bot de ZampiBot.
Respuesta 123
is-typing
Verifica si un usuario o agente está escribiendo en una conversación. (No funciona si Pusher está activo).
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseis-typing.user_idRequerido: ID del usuario o agente a verificar.conversation_idRequerido: ID de la conversación.
Respuesta Devuelve true si está escribiendo, de lo contrario false.
is-agent-typing
Verifica si un agente está escribiendo y devuelve sus detalles. (No funciona si Pusher está activo).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseis-agent-typing.conversation_idRequerido: ID de la conversación.
{
"id": "",
"first_name": "",
"last_name": ""
}
Respuesta Devuelve false si nadie escribe, o un objeto con detalles del agente.
set-typing
Asigna el estado "escribiendo" a un usuario o agente en una conversación.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseset-typing.user_idRequerido: ID del usuario o agente.conversation_idRequerido: ID de la conversación.
Respuesta
JSON
{
"success": true,
"response": true
}
login
Inicia sesión de un usuario o agente. Puede hacerse vía email/contraseña o ID/token.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreselogin.email/password: Para login tradicional.user_id/user_token: Para login por token.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "913",
"profile_image": "https://board.support/user.svg",
"first_name": "User",
"last_name": "#29902",
"email": null,
"user_type": "visitor",
"token": "9b25351047ee758aa97ee4868d130cc15eb8decf"
},
"YXNkWGNSeTdtRTdDYVkxVG8wckN4YWF6V2s0Tk1mczBSVHdQbHBpOWdmejVUTTdOUUxEUENhdUVoYmROWn..."
]
}
El segundo valor son los datos de sesión encriptados. Use SBF.loginCookie(response[1]); para guardarlo. Devuelve false si falla.
logout
Cierra la sesión del usuario conectado.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreselogout.
Respuesta
JSON
{
"success": true,
"response": true
}
También debe borrarse la cookie sb-login del navegador.
update-login
Actualiza los detalles del usuario conectado. Si un detalle no se establece, se eliminará de la base de datos.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-login.profile_image,first_name,last_name,email,department.
Respuesta
YXNkWGNSeTdtRTdDYVkxVG8wckN4YWF6V2s0Tk1mczBSVHdQbHBpOWdmejVUTTdOUUxEUENhdUVoYmROWn...
Cadena encriptada que debe guardarse en la cookie sb-login.
delete-leads
Elimina todos los leads (clientes potenciales), incluyendo conversaciones y mensajes vinculados.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-leads.
Respuesta
JSON
{
"success": true,
"response": true
}
update-bot
Actualiza los detalles del perfil del bot. Si no existe, se crea uno.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-bot.name: Nombre del bot.profile_image: URL de imagen del bot.
Respuesta true en caso de éxito, false en caso contrario.
csv-users
Exporta todos los usuarios a un archivo CSV y devuelve la URL.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecsv-users.user_ids: Array de IDs de usuario para exportar solo específicos.
Respuesta
JSON
{
"success": true,
"response": "https://board.support/uploads/users.csv"
}
WEB API: Conversaciones
Métodos para gestionar conversaciones y mensajes.
get-conversation
Devuelve una conversación y sus mensajes.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-conversation.conversation_idRequerido: El ID de la conversación.user_id: El ID del usuario vinculado.
Respuesta
JSON
{
"success": true,
"response": {
"messages": [
{
"id": "2044",
"user_id": "802",
"message": "Hello!",
"creation_time": "2020-05-0410:06:30",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "946",
"first_name": "Don",
"last_name": "John",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "lead"
},
{
"id": "2045",
"user_id": "377",
"message": "Hello,howcanIhelp?",
"creation_time": "2020-05-0410:06:33",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "946",
"first_name": "Bruce",
"last_name": "Peterson",
"profile_image": "https://chatbot.zampisoft.com/agent.svg",
"user_type": "agent"
}
...
],
"details": {
"user_id": "802",
"first_name": "Don",
"last_name": "John",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "lead",
"id": "946",
"title": "",
"conversation_time": "2020-05-0410:06:30",
"conversation_status_code": "3",
"department": null
}
}
}
Devuelve {"success":true,"response":{"messages":[],"details":""}} si no se encuentra.
get-conversations
Devuelve todas las conversaciones. Cada una incluye el último mensaje.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-conversations.pagination: Entero para paginación (0 para primeros 100, 1 para siguientes 100).status_code: Códigos de estado: live =0, esperando usuario =1, esperando agente =2, archivo =3, papelera =4, all = todos.routing: Set it to true if the queue or routing is active in Settings > Miscellaneous. Default: false.routing_unassigned: Set it to true to also view the conversations not assigned to any agent. Default: false.department,source,tag: Filtros opcionales.
Respuesta
JSON
{
"success": true,
"response": [
{
"message": "Hello World!",
"message_id": "7351",
"attachments": "",
"payload": "",
"message_status_code": "2",
"last_update_time": "2023-10-02 16:00:06",
"message_user_id": "377",
"message_first_name": "Smart Assistant",
"message_last_name": "",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "bot",
"conversation_id": "4084",
"conversation_user_id": "4446",
"conversation_status_code": "3",
"conversation_creation_time": "2023-10-02 15:59:59",
"department": "1",
"agent_id": null,
"title": "",
"source": "tk",
"extra": null,
"tags": null,
"conversation_first_name": "User",
"conversation_last_name": "#26147",
"conversation_profile_image": "https://example.com/image.jpg",
"conversation_user_type": "lead"
},
...
]
}
get-new-conversations
Devuelve conversaciones creadas después de la fecha/ID dada o con mensajes nuevos.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-new-conversations.datetimeRequerido: ID de conversación o fechaYYYY-MM-DD HH:MM:SS.routingSet it to true if the queue or routing is active in Settings > Miscellaneous. Default: false.routing_unassigned: Set it to true to also view the conversations not assigned to any agent. Default: false.
Respuesta
JSON
{
"success": true,
"response": [
{
"message": "Hello World!",
"message_id": "7351",
"attachments": "",
"payload": "",
"message_status_code": "2",
"last_update_time": "2023-10-02 16:00:06",
"message_user_id": "377",
"message_first_name": "Smart Assistant",
"message_last_name": "",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "bot",
"conversation_id": "4084",
"conversation_user_id": "4446",
"conversation_status_code": "3",
"conversation_creation_time": "2023-10-02 15:59:59",
"department": "1",
"agent_id": null,
"title": "",
"source": "tk",
"extra": null,
"tags": null,
"conversation_first_name": "User",
"conversation_last_name": "#26147",
"conversation_profile_image": "https://example.com/image.jpg",
"conversation_user_type": "lead"
},
...
]
}
Return {"success":true, "response":[]} if no conversations are found.
get-user-conversations
Devuelve las conversaciones de un usuario.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-user-conversations.user_idRequerido: El ID del usuario.exclude_id: Excluir una conversación.agents:truesi el usuario es agente/admin.
Respuesta
JSON
{
"success": true,
"response": [
{
"message": "Hello World!",
"message_id": "7351",
"attachments": "",
"payload": "",
"message_status_code": "2",
"last_update_time": "2023-10-02 16:00:06",
"message_user_id": "377",
"message_first_name": "Smart Assistant",
"message_last_name": "",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "bot",
"conversation_id": "4084",
"conversation_user_id": "4446",
"conversation_status_code": "3",
"conversation_creation_time": "2023-10-02 15:59:59",
"department": "1",
"agent_id": null,
"title": "",
"source": "tk",
"extra": null,
"tags": null
},
...
]
}
Return {"success":true, "response":[]} if no conversations are found.
get-new-user-conversations
Devuelve conversaciones de usuario actualizadas después de la fecha dada.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-new-user-conversations.user_idRequerido: ID del usuario.datetimeRequerido: Conversation ID or date and time in the following format: YYYY-MM-DD HH:MM:SS. E.g. 2020-05-13 13:35:59. You can remove the time and leave only the date. The dates stored in the database are in UTC+0.
Respuesta
JSON
{
"success": true,
"response": [
{
"message": "Hello World!",
"message_id": "7351",
"attachments": "",
"payload": "",
"message_status_code": "2",
"last_update_time": "2023-10-02 16:00:06",
"message_user_id": "377",
"message_first_name": "Smart Assistant",
"message_last_name": "",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "bot",
"conversation_id": "4084",
"conversation_user_id": "4446",
"conversation_status_code": "3",
"conversation_creation_time": "2023-10-02 15:59:59",
"department": "1",
"agent_id": null,
"title": "",
"source": "tk",
"extra": null,
"tags": null
},
...
]
}
Return {"success":true, "response":[]} if no conversations are found.
search-conversations
Devuelve conversaciones que coinciden con la búsqueda.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesearch-conversations.searchRequerido: Cadena de búsqueda (mensajes, adjuntos, emails, nombres, tags, etc.).
Respuesta
JSON
{
"success": true,
"response": [
{
"message": "Hello World!",
"message_id": "7351",
"attachments": "",
"payload": "",
"message_status_code": "2",
"last_update_time": "2023-10-02 16:00:06",
"message_user_id": "377",
"message_first_name": "Smart Assistant",
"message_last_name": "",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "bot",
"conversation_id": "4084",
"conversation_user_id": "4446",
"conversation_status_code": "3",
"conversation_creation_time": "2023-10-02 15:59:59",
"department": "1",
"agent_id": null,
"title": "",
"source": "tk",
"extra": null,
"tags": null,
"conversation_first_name": "User",
"conversation_last_name": "#26147",
"conversation_profile_image": "https://example.com/image.jpg",
"conversation_user_type": "lead"
},
...
]
}
Return {"success":true, "response":[]} if no conversations are found.
search-user-conversations
Busca en las conversaciones de un usuario específico.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesearch-user-conversations.searchRequerido: La función de búsqueda puede buscar por nombres de archivos adjuntos, mensajes, correo electrónico del usuario, nombre y apellido, etiquetas, ID del agente, ID del departamento, título de la conversación y más.user_idRequerido: ID del usuario.
Respuesta
JSON
{
"exito": true,
"respuesta": [
{
"id_mensaje": "7351",
"mensaje": "¡Hola mundo!",
"archivos_adjuntos": "",
"carga_util": "",
"codigo_estado_mensaje": "2",
"hora_ultima_actualizacion": "2023-10-02 16:00:06",
"id_usuario_mensaje": "377",
"nombre_mensaje": "Asistente Inteligente",
"apellido_mensaje": "",
"imagen_perfil_mensaje": "https://example.com/image.jpg",
"tipo_usuario_mensaje": "bot",
"id_conversacion": "4084",
"id_usuario_conversacion": "4446",
"codigo_estado_conversacion": "3",
"hora_creacion_conversacion": "2023-10-02 15:59:59",
"departamento": "1",
"id_agente": null,
"titulo": "",
"fuente": "tk",
"extra": null,
"etiquetas": null
}
]
}
Returns {"success":true, "response":[]} if no conversations are found.
new-conversation
Crea una nueva conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresenew-conversation.user_idRequerido: ID del usuario vinculado.status_code: Por defecto1.title: Título.department: ID del departamento. Por defecto-1.agent_id: ID del agente asignado. Por defecto-1.source,extra,tags.
Respuesta
JSON
{
"success": true,
"response": {
"messages": [],
"details": {
"user_id": "882",
"first_name": "Don",
"last_name": "John",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"user_type": "lead",
"id": "1007",
"title": "",
"conversation_time": "2020-05-15 12:51:39",
"conversation_status_code": "0",
"department": null
}
}
}
Other possible responses: Conversation details array on success, otherwise user-not-found, MySQL error message.
update-conversation-status
Actualiza el código de estado de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-conversation-status.conversation_idRequerido: ID de la conversación.status_codeRequerido:0(live),1(esperando usuario),2(esperando agente),3(archivo),4(papelera).
Respuesta
JSON
{
"success": true,
"response": true
}
update-conversation-department
Actualiza el departamento de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-conversation-department.conversation_idRequerido: ID de la conversación.departmentRequerido: ID del departamento. Usefalsepara remover.message: Mensaje para notificar a los agentes del nuevo departamento.
Respuesta
JSON
{
"success": true,
"response": true
}
update-conversation-agent
Asigna o actualiza el agente de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-conversation-agent.conversation_idRequerido: ID de la conversación.agent_idRequerido: ID del agente.falsepara remover.message: Mensaje de notificación para el agente.
Respuesta
JSON
{
"success": true,
"response": true
}
set-rating
Asigna una calificación a una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseset-rating.settingsRequerido: JSON{ "settings" : { "conversation_id": "ID", "rating": "RATING" }}.1positivo,0negativo.payload,message_id,message,user_id: Opcionales para actualizar mensaje.
Respuesta
JSON
{
"success": true,
"response": true
}
get-rating
Obtiene las calificaciones asignadas a un agente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-rating.user_idRequerido: ID del agente.
Respuesta {"success": true, "response": [4,2]} (4 positivas, 2 negativas).
The response array: [count of positive ratings, count of negative ratings]. In the example above there are 4 positive ratings and 2 negative ratings.
get-new-messages
Devuelve los mensajes de una conversación creados después de la fecha/ID dada.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-new-messages.user_idRequerido: ID del usuario.conversation_idRequerido: ID de la conversación.datetimeRequerido: ID o fechaYYYY-MM-DD HH:MM:SS.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "2319",
"user_id": "377",
"message": "Welcome to our support chat!",
"creation_time": "2020-05-12 18:04:50",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "1004",
"first_name": "Virtual",
"last_name": "Agent",
"profile_image": "https://chatbot.zampisoft.com/bot.svg",
"user_type": "bot"
},
{
"id": "2320",
"user_id": "877",
"message": "Thank you! I need help.",
"creation_time": "2020-05-12 18:04:51",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "1004",
"first_name": "Don",
"last_name": "John",
"profile_image": "https:/chatbot.zammpisoft.com/user.svg",
"user_type": "lead"
},
...
]
}
Return {"success":true, "response":[]} if no conversations are found.
get-last-message
Devuelve el último mensaje de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-last-message.conversation_idRequerido: ID de la conversación.exclude_message: Excluir mensaje con texto específico.user_id: Verificar solo mensajes de este usuario.
Respuesta
JSON
{
"success": true,
"response": {
"message": "Welcome to our support chat!",
"attachments": "",
"payload": ""
}
}
send-message
Añade un nuevo mensaje a una conversación existente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesend-message.user_idRequerido: El ID del usuario que envía el mensaje. Utilice la APIget-bot-idpara obtener el ID del bot si es el sistema quien envía el mensaje.conversation_idRequerido: El ID de la conversación.message: El contenido del mensaje.attachments: Array de archivos adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del archivo adjunto yenlacecon la URL completa del archivo. - Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de archivos que ya han sido subidos previamente.
- Por defecto:
[].
- Sintaxis del array:
conversation_status_code: El código de estado que se asignará a la conversación.- Códigos de estado: activo (live) =
0, esperando respuesta del usuario =1, esperando respuesta del agente =2, archivado =3, papelera =4. - Establézcalo en
skippara dejar el estado actual de la conversación sin cambios.
- Códigos de estado: activo (live) =
payload: Array en formato JSON con información adicional. Puede insertar cualquier valor.- Sintaxis del array:
{ "clave": valor, "clave": valor, ... }.
- Sintaxis del array:
queue: Establézcalo entruesi la función de Cola está activa enConfiguración > Misceláneas > Cola(Queue). Por defecto:false.recipient_id: El ID del usuario que recibe el mensaje. Utilice este atributo para que el sistema detecte y aplique el idioma correcto del usuario.
Respuesta
JSON
{
"success": true,
"response": {
"status": "success",
"message-id": 123456,
"queue": false,
"notifications": ["sms", "email"],
"message": "Text of the message"
}
}
Other possible responses: invalid-status-code, MySQL error message. The notifications response include the notifications sent to the user or agents.
update-message
Actualiza un mensaje existente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-message.message_idRequerido: El ID del mensaje.message: El contenido del mensaje.attachments: Array de archivos adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del archivo adjunto yenlacecon la URL completa del archivo adjunto. - Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
- Por defecto:
[].
- Sintaxis del array:
payload: Array en formato JSON de información adicional.- Puede insertar cualquier valor.
- Sintaxis del array:
{ "clave": valor, "clave": valor, ... }.
Respuesta
JSON
{
"success": true,
"response": true
}
delete-message
Elimina un mensaje existente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-message.message_idRequerido: ID del mensaje.
Respuesta
JSON
{
"success": true,
"response": true
}
delete-attachments
Elimina todos los adjuntos de una conversación o mensaje (incluyendo AWS S3).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-attachments.conversation_id: El ID de la conversación que contiene los archivos adjuntos que desea eliminar. Por defecto:false.message_id: El ID del mensaje que contiene los archivos adjuntos que desea eliminar. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
update-messages-status
Actualiza el estado de múltiples mensajes a "leído".
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdate-messages-status.message_idsRequerido: Array de IDs de mensajes[1, 212, ...].user_id: ID del usuario (requerido para Pusher).
Respuesta
JSON
{
"success": true,
"response": true
}
get-agents-in-conversation
Devuelve un array con todos los agentes que tienen al menos un mensaje en la conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-agents-in-conversation.conversation_idRequerido: ID de conversación (puede ser un array).
Respuesta
JSON
{
"success": true,
"response": {
"1546": [
{
"id": 5463,
"first_name": "Don",
"last_name": "John",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"conversation_id": 1546
},
{
"id": 6413,
"first_name": "Steven",
"last_name": "Travolta",
"profile_image": "https://chatbot.zampisoft.com/user.svg",
"conversation_id": 1546
},
...
]
}
}
transcript
Exporta una conversación a CSV o TXT y devuelve la URL.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresetranscript.conversation_idRequerido: El ID de la conversación que desea exportar.type:- Establézcalo en
csvpara exportar la conversación como un archivo CSV. - Establézcalo en
txtpara exportar la conversación como un archivo de texto. - Establézcalo en
falsepara utilizar el tipo definido enConfiguración > Administración > Tipo de transcripción(Settings > Admin > Transcript type). - Por defecto:
false.
- Establézcalo en
Respuesta
JSON
{
"success": true,
"response": "https://chatbot.zampisoft.com/uploads/conversation-1021.csv"
}
Return {"success":true, "response":false} if the conversation is not found.
direct-message
Envía un mensaje de chat directo.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedirect-message.user_idsRequerido: Array de IDs de usuario, ej.[45, 89, 65].messageRequerido: El mensaje.subject: El asunto. Requerido solo para correos electrónicos. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
messaging-platforms-send-message
Envía un mensaje a la plataforma de mensajería vinculada (Facebook, WhatsApp, etc.).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresemessaging-platforms-send-message.conversation_idRequerido: El ID de la conversación.messageRequerido: El mensaje.attachmentsRequerido: Array de archivos adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del archivo adjunto yenlacecon la URL completa del archivo adjunto. - Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
userRequerido: Array asociativo con{ "id": 123, "profile_image":source: Array asociativo con{ "source": CÓDIGO DE FUENTE }como valor.- Códigos de fuente disponibles:
em(Email),tk(Ticket),wa(WhatsApp),fb(Facebook Messenger),ig(Instagram),tw(Twitter),wc(WeChat),tx(Mensaje de texto),gb(Google Business Messages),tg(Telegram),ln(LINE),vb(Viber). - Para Telegram: La fuente también debe incluir
{ "chat_id": "123456789" }. - Para Facebook Messenger: La fuente también debe incluir
{ "page_id": "123456789" }.
Respuesta
JSON
{
"success": true,
"response": true
}
count-conversations
Cuenta el número de conversaciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecount-conversations.status_code: Filtrar por código de estado.
Respuesta
JSON
{
"success": true,
"response": 123456
}
check-conversations-assignment
Verifica si una lista de conversaciones está asignada a un departamento o agente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecheck-conversations-assignment.conversation_idsRequerido: Array de IDs de las conversaciones a verificar, ej.[45, 565, 68].agent_id: El ID del agente. Por defecto:false.department_id: El ID del departamento. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [1234, 5, ...]
}
get-last-agent-in-conversation
Devuelve el último agente que respondió a una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-last-agent-in-conversation.conversation_idRequerido: El ID de la conversación.
Respuesta
JSON
{
"success": true,
"response": {
"id": 123,
"first_name": "Don",
"last_name": "John",
"email": "email@example.com",
"password": "$P$BcCpYeU21wYnXKW2LpJj/F9xRdSmLM/"
}
}
Devuelve false si la conversación no tiene respuestas de agentes.
execute-bot-message
Envía un mensaje del bot y devuelve su contenido.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseexecute-bot-message.nameRequerido: El nombre del mensaje del bot. Valores disponibles:offline,follow_up,welcome.conversation_idRequerido: El ID de la conversación a la que enviar el mensaje.last_user_message: Úselo para mostrar diferentes extractos de texto en el área de administración y el panel de chat. Por defecto:false.check: Establézcalo enfalsepara enviar el mensaje incluso si ya se envió hace menos de 10 días. Por defecto:true.
Respuesta
JSON
{
"success": true,
"response": {
"message": "Lorem ipsum dolor",
"attachments": [],
"id": 123,
"settings": {
"active": true,
"title": "",
"message": ""
}
}
}
ID es el ID del mensaje que se acaba de crear.
⚙️ WEB API: Configuración (Settings)
Funciones relacionadas con la configuración, artículos, traducciones y más.
get-setting
Devuelve una configuración guardada en el área de Configuración.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-setting.settingRequerido: El ID de la configuración. Puede obtener los IDs de todas las configuraciones del archivoresources\json\settings.jsono con la función de la APIget-settings.
Respuesta
JSON
{
"success": true,
"response": {
"option": "value",
"option": "value",
...
}
}
get-multi-setting
Devuelve una sub-configuración de otra configuración.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-multi-setting.idRequerido: El ID de la configuración principal. Puede obtener los IDs de todas las configuraciones del archivoresources\json\settings.jsono con la función de la APIget-settings.sub_idRequerido: El ID de la sub-configuración. Puede obtener los IDs de todas las configuraciones del archivoresources\json\settings.jsono con la función de la APIget-settings.default: El valor a devolver si no se encuentra la configuración. Por defecto:false.
Respuesta Devuelve el valor de la sub-configuración si está disponible; de lo contrario, devuelve el valor por defecto.
get-external-setting
Devuelve una configuración externa. Las configuraciones externas se guardan en una fila dedicada de la base de datos.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-external-setting.nameRequerido: El nombre de la configuración.default: El valor a devolver si no se encuentra la configuración. Por defecto:false.
Respuesta Devuelve el valor de la configuración si está disponible; de lo contrario, devuelve el valor por defecto.
get-settings
Devuelve un array con todas las configuraciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-settings.
Respuesta
JSON
{
"success": true,
"response": {
"chat-manual-init": [
false,
"checkbox"
],
"chat-login-init": [
false,
"checkbox"
],
"init-dashboard": [
true,
"checkbox"
],
"chat-timetable-disable": [
false,
"checkbox"
],
"rtl": [
false,
"checkbox"
],
"front-auto-translations": [
true,
"checkbox"
],
...
}
}
save-settings
Guarda todas las configuraciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesave-settings.settingsRequerido: El array de configuraciones. Obténgalo deget-settings.external_settings: Configuraciones guardadas en una fila dedicada de la tablasb_settingsde la base de datos.external_settings_translations: Traducciones de las configuraciones externas.
Respuesta
JSON
{
"success": true,
"response": true
}
save-external-setting
Guarda una configuración externa. Las configuraciones externas se guardan en una fila dedicada de la base de datos.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesave-external-setting.nameRequerido: El nombre de la configuración.valueRequerido: El valor de la configuración.
Respuesta
JSON
{
"success": true,
"response": true
}
export-settings
Exporta todas las configuraciones de ZampiBot a un archivo JSON y devuelve la URL del archivo.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseexport-settings.
Respuesta
JSON
{
"success": true,
"response": "http://example.com/chatbot.zampisoft.com/uploads/settings_855776223.json"
}
Devuelve la URL del archivo JSON que contiene las configuraciones.
import-settings
Importa las configuraciones de ZampiBot desde un archivo JSON generado a través de la función export-settings.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseimport-settings.file_urlRequerido: La URL del archivo JSON que contiene las configuraciones.
Respuesta
JSON
{
"success": true,
"response": true
}
get-departments
Devuelve los departamentos de ZampiBot.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-departments.
Respuesta
{
"1": {
"name": "Ejemplo",
"color": "yellow",
"image": "https://example.com/image.png"
},
"2": {
"name": "Ejemplo",
"color": "red",
"image": "https://example.com/image.png"
},
...
}
saved-replies
Devuelve un array con todas las respuestas guardadas.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesaved-replies.
Respuesta
JSON
{
"success": true,
"response": [
{
"reply-name": "hola",
"reply-text": "¡Hola! ¿Cómo puedo ayudarte?"
},
{
"reply-name": "email",
"reply-text": "Nuestro correo electrónico es soporte@ejemplo.com."
},
...
]
}
get-translation
Devuelve las traducciones en el idioma dado.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-translation.language_codeRequerido: El código de idioma de dos letras.
Respuesta
JSON
{
"name": "Arabic",
"front": {
"Activities": "أنشطة",
"All": "الكل",
"All articles": "جميع المقالات",
"All fields are required.": "جميع الحقول مطلوبة",
...
},
"admin": {
"A conversation was started by": "",
"Activate": "",
"Activation complete! Page reload in progress...": "",
"Add a saved reply": "",
...
}
}
get-translations
Devuelve las traducciones del back-end y del front-end, para todos los idiomas disponibles.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-translations.
Respuesta
JSON
{
"ar": {
"name": "Arabic",
"front": {
"Activities": "أنشطة",
"All": "الكل",
"All articles": "جميع المقالات",
"All fields are required.": "جميع الحقول مطلوبة",
...
},
"admin": {
"A conversation was started by": "",
"Activate": "",
"Activation complete! Page reload in progress...": "",
"Add a saved reply": "",
...
}
},
"da": {
"name": "Danish",
"front": {
"Activities": "Aktiviteter",
"All": "Alle",
"All articles": "Alle artikler",
"All fields are required.": "Alle felter skal udfyldes.",
...
},
"admin": {
"A conversation was started by": "",
"Activate": "",
"Activation complete! Page reload in progress...": "",
"Add a saved reply": "",
...
}
},
...
}
save-translations
Guarda las traducciones y sobrescribe los archivos de traducción. ¡Advertencia! Si el array de traducciones dado está corrupto, podría corromper los archivos de traducciones. Haga primero una copia de seguridad de la carpeta de traducciones (\resources\languages\). Cada vez que se guarda una traducción, se crea una copia de seguridad automáticamente en la carpeta uploads.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesave-translations.translationsRequerido: El array de traducciones con todas las traducciones. Utilice el métodoget-translationspara obtener el array.
Respuesta
JSON
{
"success": true,
"response": true
}
translate-string
Traduce una cadena al idioma del código de idioma especificado. Esta función solo funciona para traducciones del front-end.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresetranslate-string.stringRequerido: La cadena a traducir.language_code: El código de idioma de dos letras. Establézcalo enfalsepara usar el idioma del usuario activo. Por defecto:false.
Respuesta Devuelve la cadena traducida si se encuentra la traducción; de lo contrario, devuelve la cadena original.
📄 WEB API: Artículos
Funciones de Artículos y Base de Conocimientos.
get-articles
Devuelve un array con todos los artículos o un solo artículo.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-articles.id: El ID del artículo. Para obtener los IDs de los artículos, ejecute este método nuevamente sin argumentos. Por defecto:-1.count: El número máximo de artículos devueltos. Por defecto: todos.full: Booleano. Establézcalo entruepara obtener el contenido completo de los artículos. Por defecto:false.categories:- Establézcalo en
truepara obtener el array de todas las categorías; en tal caso, la respuesta es un array doble (el primer elemento son los artículos, el segundo son las categorías). - Establézcalo en el ID de la categoría para obtener solo los artículos de la categoría dada.
- Por defecto:
false.
- Establézcalo en
articles_language: Obtiene los artículos en el idioma del código de idioma dado. Si no hay artículos en el código de idioma dado, se devuelven los artículos en el idioma por defecto. Establézcalo enallpara obtener todas las traducciones. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "6P2Oq",
"title": "What's new with the API V2?",
"content": "The API V2 is the new iteration of o ...",
"link": "https://chatbot.zampisoft.com",
"categories": ["K92kl"]
},
{
"title": "Should I move to the new system?",
"content": "Yes. The newest version of the Actions ...",
"link": "https://chatbot.zampisoft.com",
"id": "qf7kD",
"categories": ["ols85"]
},
...
]
}
Respuesta (Un solo artículo):
JSON
{
"success": true,
"response": {
"id": "6P2Oq",
"title": "What's new with the API V2?",
"content": "The API V2 is the new iteration of our developer API. The new API integrates...",
"link": "https://board.support",
"categories": ["K92kl"]
}
}
save-article
Guarda todos los artículos. Esta función elimina todos los artículos existentes y los reemplaza con los del array dado.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesave-article.articleRequerido: Array de artículos. Utilice la funciónget-articlespara obtener la estructura del artículo.
Respuesta
JSON
{
"success": true,
"response": true
}
search-articles
Devuelve los artículos que coinciden con la búsqueda.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesearch-articles.searchRequerido: La cadena a buscar. La función de búsqueda admite título y contenido.articles_language: Busca solo los artículos en el idioma del código de idioma dado. Si no hay artículos en el código de idioma dado, la búsqueda devuelve los artículos en el idioma por defecto. Establézcalo enallpara obtener todas las traducciones. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": "118",
"title": "Hello world!",
"content": "Lorem ipsum dolor sit amet...",
"editor_js": "",
"link": "",
"category": "basements",
"parent_category": "video",
"language": "",
"parent_id": null,
"slug": "images-and-photos",
"update_time": "2024-06-04"
},
{
"id": "127",
"title": "How to develop an app",
"content": "Resitor Lorem ipsum dolor sit amet...",
"editor_js": "",
"link": "",
"category": "",
"parent_category": "",
"language": "",
"parent_id": null,
"slug": null,
"update_time": "2024-05-24"
},
...
]
}
get-articles-categories
Devuelve un array con todas las categorías de artículos.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-articles-categories.
Respuesta
{
"success": true,
"response": [
{
"title": "Audio",
"description": "Lorem ipsum dolor sit amet. ",
"image":"https://example.com/image.jpg",
"id": "audio",
"parent": true,
"languages": {
"es": {
"title": "Audio",
"description": "Es eorem ipsum dolor sit amet. "
}
}
},
{
"title": "Video",
"description": "Lorem ipsum dolor.",
"image": "https://example.com/image.jpg",
"id": "video",
"languages": []
},
...
]
}
save-articles-categories
Guarda o actualiza el array de categorías de artículos.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesave-articles-categories.categoriesRequerido: Array de categorías. Obtenga el array de categorías existentes con la funciónget-articles-categories.
Respuesta
JSON
{
"success": true,
"response": true
}
article-ratings
Obtiene las calificaciones de un artículo o añade una nueva calificación al mismo.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresearticle-ratings.article_idRequerido: El ID del artículo.rating: La calificación a añadir. Ingrese1para una calificación positiva o0para una negativa. Si se establece este argumento, el método añade la calificación; de lo contrario, devuelve las calificaciones existentes. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": "[-1, 1, 1, -1]"
}
Devuelve true si el argumento rating está establecido.
➕ WEB API: Más métodos
send-email
Envía un correo electrónico a un usuario existente utilizando las plantillas de correo de la sección Configuración > Notificaciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesend-email.recipient_idRequerido: El ID del usuario al cual enviar el correo electrónico.sender_id: El ID del usuario remitente.messageRequerido: El mensaje del correo electrónico.attachments: Array de archivos adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del archivo adjunto yenlacecon la URL completa del archivo. - Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
- Por defecto:
[].
- Sintaxis del array:
Respuesta
JSON
{
"success": true,
"response": true
}
Otras posibles respuestas: missing-user-id-or-message, security-error, user-email-not-found, user-or-sender-not-found.
send-custom-email
Envía un correo electrónico genérico a una dirección de correo. El correo y nombre del remitente son los configurados en Configuración > Notificaciones > Configuración de correo electrónico.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesend-custom-email.toRequerido: La dirección de correo electrónico del destinatario.subjectRequerido: El asunto del correo.messageRequerido: El mensaje del correo.sender_suffix: Añade el texto proporcionado al nombre del remitente. Por defecto: vacío.
Respuesta
JSON
{
"success": true,
"response": true
}
email-piping
Ejecuta la sincronización de email piping con ZampiBot y convierte los correos electrónicos en mensajes de chat.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseemail-piping.force: Establézcalo entruepara forzar la ejecución de la sincronización; por defecto, la sincronización se ejecuta un máximo de una vez por minuto. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
send-sms
Envía un mensaje de texto (SMS) a un usuario o agente. Si el argumento template es verdadero (true), el mensaje se traduce automáticamente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesend-sms.messageRequerido: El mensaje de texto.toRequerido: El número de teléfono. Incluya el código de país.template: Establézcalo enfalsepara enviar solo el mensaje sin el contenido de la plantilla. Por defecto: el mensaje se envía dentro de la plantilla configurada enConfiguración > Notificaciones SMS.conversation_id: Establézcalo si el mensaje contiene el campo de combinación{conversation_url_parameter}.attachments: Array de adjuntos. Sintaxis:[["nombre", "enlace"], ["nombre", "enlace"], ...]o["enlace", "enlace", ...].- Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto.
- Por defecto:
false.
- Reemplace
recipient_id: El ID del usuario al cual enviar el mensaje de texto. Este argumento es requerido para que funcionen las traducciones.
Respuesta
JSON
{
"success": true,
"response": {
"sid": "SM1f0e8ae6ade43cb3c0ce4525424e404f",
"date_created": "Fri, 13 Aug 2010 01:16:24 +0000",
"date_updated": "Fri, 13 Aug 2010 01:16:24 +0000",
"date_sent": null,
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"to": "+15305431221",
"from": "+15104564545",
"body": "A Test Message",
"status": "queued",
"flags": [
"outbound"
],
"api_version": "2010-04-01",
"price": null,
"uri": "/2010-04-01/Accounts/ACXXXX/Messages/SM1f004f.json"
}
}
push-notification
Envía una notificación Push a un agente, un grupo de agentes o a todos los agentes. Las notificaciones Push deben estar habilitadas en el área de configuración.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresepush-notification.titleRequerido: El título de la notificación.messageRequerido: El texto del mensaje.interestsRequerido: Se aceptan los siguientes valores:- ID de Agente o usuario.
- Array de IDs de agentes o usuarios (ej.
[1, 2, 3]). - Ingrese
agentspara enviar la notificación a todos los agentes y administradores. - Ingrese
department-IDpara enviar la notificación a todos los agentes y administradores asignados al departamento dado o a aquellos sin departamento asignado. ReemplaceIDcon el ID del departamento.
conversation_id: El ID de la conversación que se abrirá cuando el usuario haga clic en la notificación.icon: La URL del icono de la notificación. Por defecto: Icono de ZampiBot o icono de notificaciones.
Respuesta
JSON
{
"success": true,
"response": {
"id": "8b1c4e05-5e08-4926-86b0-a56ab7817e25",
"external_id": null,
"errors": {}
}
}
Devuelve false si las notificaciones Push están deshabilitadas en el área de configuración.
get-versions
Devuelve las versiones instaladas de ZampiBot y las Apps.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-versions.
Respuesta
JSON
{
"success": true,
"response": {
"sb": "3.0.4",
"dialogflow": "1.0.2",
"slack": "1.0.3"
}
}
cron-jobs
Ejecuta las tareas programadas (cron jobs).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresecron-jobs.
Respuesta
JSON
{
"success": true,
"response": true
}
pusher-trigger
Dispara un evento en un canal de Pusher.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresepusher-trigger.channelRequerido: El nombre del canal.eventRequerido: El nombre del evento.data: Array de valores. Sintaxis:[ "nombre" => "valor" ].
Respuesta
JSON
{
"success": true,
"response": true
}
chat-css
Devuelve el estilo CSS para los colores del chat.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresechat-css.color_1: El primer color en formato RGB o HEX. Por defecto: el primer color guardado en el área de configuración.color_2: El segundo color en formato RGB o HEX. Por defecto: el segundo color guardado en el área de configuración.color_3: El tercer color en formato RGB o HEX. Por defecto: el tercer color guardado en el área de configuración.
Respuesta El código CSS.
text-formatting-to-html
Convierte el formato de texto de los mensajes de chat a los códigos HTML equivalentes y devuelve el mensaje.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresetext-formatting-to-html.messageRequerido: El mensaje de texto.
Respuesta Lorem ipsum dolor <b>sit amet</b>, <i>consectetur adipiscing elit</i>, <code>sed</code> do eiusmod tempor incididunt.
clear-text-formatting
Elimina el formato de texto de los mensajes de chat.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseclear-text-formatting.messageRequerido: El mensaje de texto.
Respuesta Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.
get-notes
Devuelve las notas internas de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseget-notes.conversation_idRequerido: El ID de la conversación.
Respuesta
JSON
{
"success": true,
"response": [
{
"id": 98207,
"user_id": "1538",
"name": "Lorem ipsum dolor sit amet",
"message": "Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt."
},
{
"id": 76986,
"user_id": "1596",
"name": "Lorem ipsum dolor",
"message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor."
},
...
]
}
add-note
Añade una nueva nota a una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseadd-note.conversation_idRequerido: El ID de la conversación a la cual vincular la nota.user_idRequerido: El ID del agente o administrador que crea la nota.nameRequerido: El nombre de la nota.messageRequerido: El mensaje de la nota.
Respuesta
JSON
{
"success": true,
"response": 33560
}
Devuelve el ID de la nota.
delete-note
Elimina una nota de una conversación.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedelete-note.conversation_idRequerido: El ID de la conversación vinculada a la nota.note_idRequerido: El ID de la nota.
Respuesta
JSON
{
"success": true,
"response": true
}
automations-get
Devuelve todas las automatizaciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-get.
Respuesta
JSON
[
{
"emails": [
{
"id": "0BOaG",
"conditions": [
[
"datetime",
"is-between",
"10/04/2021 - 13/04/2021"
],
[
"include_urls",
"contains",
"https://example.com"
],
...
],
"name": "Excepteur sint",
"message": "Excepteur sint occaecat cupidatat non proident.",
"subject": "Cupidatat non proident"
},
...
],
"sms": [
{
"id": "vo2sY",
"conditions": [
[
"datetime",
"is-exactly",
"13/04/2021"
]
],
"name": "Excepteur sint",
"message": "Excepteur sint occaecat cupidatat non caecat cupidatat non proident"
},
{
"id": "hwkmQ",
"name": "Excepteur sint occaecat cupidatat non proident",
"message": "Excepteur sint occaecat cupidatat non occaecat cupidatat non proident"
},
...
],
"messages": [],
"popups": [
{
"id": "ckN24",
"conditions": [
[
"user_type",
"is-user"
],
[
"languages",
"en"
]
],
"name": "s",
"message": "Excepteur sint occaecat cupidatat non prcaecat cupidatat non proident",
"title": "Excepteur sint occaecat",
"profile_image": "https://example.com/image.jpg"
},
...
],
"design": [
{
"id": "bX1qA",
"conditions": [
[
"user_type",
"is-user"
]
],
"name": "Excepteur sint",
"message": "Excepteur sint occaecat cupidatat caecat cupidatat non proident",
"title": "",
"color_1": "rgb(0, 235, 26)",
"color_2": "rgb(255, 0, 0)",
"color_3": "rgb(255, 0, 0)",
"background": "https://example.com/image.jpg",
"brand": "https://example.com/image.jpg",
"icon": "https://example.com/image.jpg"
},
...
]
},
{
"fr": {
"messages": [
{
"id": "y6hNE",
"name": "XXXX",
"message": "XXXX"
}
]
},
...
}
]
automations-save
Guarda todas las automatizaciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-save.automationsRequerido: Array de automatizaciones. Obténgalo de la funciónautomations-get.translations: Array de traducciones de automatizaciones. Obténgalo de la funciónautomations-get.
Respuesta
JSON
{
"success": true,
"response": true
}
automations-validate
Valida una automatización.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-validate.automationRequerido: La automatización.
Respuesta
JSON
{
"conditions": [
[
"user_type",
"is-user"
],
...
],
"repeat_id": ""
}
Devuelve solo las condiciones del lado del cliente y las condiciones del servidor inválidas que pueden validarse en un momento posterior. Si no se devuelven condiciones, la automatización es válida y puede ejecutarse. Devuelve false si la automatización es inválida.
automations-run-all
Valida todas las automatizaciones, ejecuta las válidas y devuelve las automatizaciones con condiciones del lado del cliente, condiciones del servidor inválidas y automatizaciones de popup y diseño.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-run-all.
Respuesta
JSON
[
{
"id": "0BOaG",
"conditions": [
[
"datetime",
"is-between",
"10/04/2021 - 13/04/2021"
],
[
"include_urls",
"contains",
"https://example.com"
],
...
],
"name": "Excepteur sint",
"message": "Excepteur sint occaecat cupidatat non proident.",
"subject": "Cupidatat non proident",
"type": "emails"
},
{
"id": "bX1qA",
"conditions": [
[
"user_type",
"is-user"
]
],
"name": "Excepteur sint",
"message": "Excepteur sint occaecat cupidatat caecat cupidatat non proident",
"title": "",
"color_1": "rgb(0, 235, 26)",
"color_2": "rgb(255, 0, 0)",
"color_3": "rgb(255, 0, 0)",
"background": "https://example.com/image.jpg",
"brand": "https://example.com/image.jpg",
"icon": "https://example.com/image.jpg",
"type": "design"
},
...
]
automations-run
Ejecuta una sola automatización y opcionalmente la valida antes de ejecutarla.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-run.automationRequerido: La automatización.validate: Establézcalo entruepara validar la automatización antes de ejecutarla. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
automations-is-sent
Verifica si una automatización ya ha sido enviada a un usuario.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseautomations-is-sent.user_idRequerido: El ID del usuario a verificar.automationRequerido: La automatización. Puede ser["id" => 123]donde 123 es el ID de la automatización.repeat_id: Establézcalo solo si la automatización se puede enviar múltiples veces al usuario. Obténgalo desb_automations_validate. Por defecto:false.
Respuesta Devuelve true si la automatización ya ha sido enviada; de lo contrario, devuelve false.
clean-data
Esta función realiza las siguientes tareas: Elimina visitantes con una antigüedad mayor a 24h, elimina mensajes en la papelera con una antigüedad mayor a 30 días, y archiva mensajes donde la última respuesta fue de un agente y tienen una antigüedad mayor a 24h.
Requisitos Esta es una función de administración y solo funciona si el usuario activo es un agente o un administrador.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseclean-data.
Respuesta
JSON
{
"success": true,
"response": true
}
reports
Devuelve los reportes especificados.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresereports.nameRequerido: El nombre del reporte. Valores disponibles:conversations,missed-conversations,conversations-time,visitors,leads,users,agents-response-time,agents-conversations,agents-conversations-time,agents-ratings,countries,languages,browsers,os,subscribe,follow-up,registrations,articles-searches,articles-ratings,articles-views-single,articles-views,sms-automations,email-automations,message-automations,direct-sms,direct-emails,direct-messages.date_start: La fecha de inicio de los reportes. Formato:dd/mm/yyyyoyyyy-mm-dd. Por defecto:false.date_end: La fecha de finalización de los reportes. Formato:dd/mm/yyyyoyyyy-mm-dd. Por defecto:false.timezone: La zona horaria del usuario que llama a esta función, ej.Europe/London. Por defecto:false.
Respuesta
JSON
{
"title": "New conversations",
"description": "Count of new conversations started by users.",
"data": {
"03/2021": [
2
],
"04/2021": [
0
],
"05/2021": [
0
],
...
},
"table": [
"Date",
"Count"
],
"table_inverse": true,
"label_type": 1,
"chart_type": "line"
}
reports-update
Añade una nueva fila a la tabla sb_reports de la base de datos.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresereports-update.nameRequerido: El nombre del reporte (ver valores disponibles en la funciónreports).value: El valor de la fila. Por defecto:false.external_id: Un ID externo. Por defecto:false.extra: Un valor extra. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
updates-available
Comprueba si hay actualizaciones disponibles para ZampiBot y las aplicaciones de ZampiBot.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupdates-available.
Respuesta
JSON
{
"success": true,
"response": true
}
Devuelve true si hay al menos una actualización disponible; de lo contrario, devuelve false.
newsletter
Añade un suscriptor al servicio de boletín configurado en Configuración > Misceláneas > Newsletter. El ajuste Configuración > Misceláneas > Newsletter > Activo debe estar habilitado.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresenewsletter.emailRequerido: La dirección de correo electrónico del suscriptor.first_name: El nombre del suscriptor. Por defecto: vacío.last_name: El apellido del suscriptor. Por defecto: vacío.
Respuesta Devuelve la respuesta del servicio de newsletter.
upload-path
Devuelve la ruta de subidas (uploads) de ZampiBot.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseupload-path.url: Establézcalo entruepara obtener la URL en su lugar. Por defecto:false.date: Establézcalo entruepara obtener también la carpeta de fecha relativa a la fecha actual. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": "\var\www\htdocs\chatbot.zampisoft.com\uploads\10-03-23"
}
o
JSON
{
"success": true,
"response": "https://www.example.com/chatbot.zampisoft.com/uploads/10-03-23"
}
is-allowed-extension
Comprueba si está permitido subir archivos con la extensión especificada.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseis-allowed-extension.extensionRequerido: La extensión del archivo, ej.jpg.
Respuesta
JSON
{
"success": true,
"response": true
}
Devuelve true si la extensión está permitida; de lo contrario, devuelve false.
system-requirements
Comprueba si la máquina host cumple con los requisitos del sistema de ZampiBot.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesystem-requirements.
Respuesta
JSON
{
"success": true,
"response": {
"php-version": true,
"zip-archive": true,
"plugin-folder": true,
"uploads-folder": true,
"apps-folder": true,
"languages-folder": true,
"ajax": true,
"curl": true,
"UTF8mb4": true
}
}
logs
Añade un mensaje de registro al archivo de log.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreselogs.stringRequerido: El mensaje de registro.user: Establézcalo para incluir el ID de usuario en el mensaje de registro. Este valor puede ser["id" => 123]. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
aws-s3
Sube un archivo a Amazon S3, o elimina un archivo de Amazon S3. Amazon S3 debe estar activo y configurado en Configuración > Misceláneas > Amazon S3.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseaws-s3.file_pathRequerido: La ruta al archivo para subir o la URL del archivo de Amazon S3 para eliminar.action: Establézcalo enPUTpara subir un archivo. Establézcalo enDELETEpara eliminar un archivo. Por defecto:PUT.bucket_name: El nombre del bucket. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": "https://example.s3.amazonaws.com/example.txt"
}
Devuelve la URL del archivo de Amazon S3.
🧠 WEB API: Inteligencia Artificial
La aplicación de Inteligencia Artificial es necesaria para utilizar este conjunto de APIs.
dialogflow-message
Envía un mensaje a Dialogflow y devuelve la respuesta.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-message.conversation_id: El ID de una conversación. Si se proporciona, la respuesta se añade a la conversación como un nuevo mensaje.message: La cadena que contiene el texto del mensaje.attachments: Array de archivos adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del archivo adjunto yenlacecon la URL completa del archivo. Dialogflow puede leer este array.
- Sintaxis del array:
language: El idioma del bot. Por defecto: el idioma principal del bot.event: Dispara un evento de Dialogflow.parameters: Array de información opcional.- Sintaxis del array:
{ "nombre": "valor", "nombre": "valor", ...}.
- Sintaxis del array:
audio: URL de un archivo de audio para el reconocimiento de voz. Por defecto:false.token: El token de acceso de Dialogflow. Por razones de rendimiento, incluya siempre este token. Obtendrá el token después de la primera llamada de esta función, dentro de la respuesta.
Respuesta
JSON
{
"success": true,
"response": {
"token": "ya29.a0AfH6SE4SVIeOPWSfxRVfHNcJIoR-IvRTtrEe4P9VXHa",
"messages": [
{
"message": "Hi! How are you doing?",
"attachments": []
}
],
"response": {
"responseId": "1a5e30d0-d6d4-4f0c-83e3-2fb9e31c2a5e-e15c53b8",
"queryResult": {
"queryText": "Hello",
"action": "input.welcome",
"parameters": [],
"allRequiredParamsPresent": true,
"fulfillmentText": "Hi! How are you doing?",
"fulfillmentMessages": [
{
"platform": "ACTIONS_ON_GOOGLE",
"simpleResponses": {"simpleResponses": [ { "textToSpeech": "Example"} ]}
},
{
"text": { "text": [ "Hi! How are you doing?" ] }
}
],
"intent": {
"name": "projects/api-project-657752147/agent/intents/fe27e-f39d-4db3-92c2",
"displayName": "Default Welcome Intent"
},
"intentDetectionConfidence": 1,
"languageCode": "en"
},
"alternativeQueryResults": [
{
"queryText": "Hello",
"languageCode": "en"
}
]
}
}
}
Otras posibles respuestas: dialogflow-not-active, mensaje de error de MySQL o cURL.
dialogflow-get-intents
Devuelve la Intención (Intent) de Dialogflow especificada o todas las Intenciones.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-get-intents.intent_name: El nombre de la intención.language: El idioma del agente. Por defecto: el idioma principal del agente.
Respuesta
JSON
[
{
"name": "projects/example/agent/intents/1655ee2c-8116-45f1-95fu-93700ff32e8d",
"displayName": "Default Welcome Intent",
"priority": 500000,
"mlEnabled": true,
"events": [ "WELCOME" ],
"trainingPhrases": [
{
"name": "43ca0e72-6055-4b88-af13-b0d241",
"type": "EXAMPLE",
"parts": [
{
"text": "just going to say hi"
}
]
},
{
"name": "5159aabc-8524-404f-b679-f2228db1",
"type": "EXAMPLE",
"parts": [
{
"text": "Hello"
}
]
},
...
],
"action": "input.welcome",
"messages": [
{
"text": {
"text": [ "Hi! How are you doing?", "Hello! How can I help you?" ]
}
}
]
},
...
]
dialogflow-create-intent
Crea una nueva Intención (Intent) en Dialogflow. La nueva Intención se vinculará al agente sincronizado en el área de administración.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-create-intent.expressionsRequerido: Array con las frases de entrenamiento. Sintaxis del array:["", "", ...].responseRequerido: Cadena que contiene la respuesta del bot cuando la entrada del usuario coincide con una expresión del usuario.agent_language: El código de idioma de la intención. Por defecto: idioma principal del agente. Para ver la lista de códigos de idiomas, visite la documentación de Dialogflow. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
dialogflow-update-intent
Actualiza una Intención (Intent) de Dialogflow.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-update-intent.intent_nameRequerido: El nombre de la Intención. Obténgalo con la funcióndialogflow-get-intents.expressionsRequerido: Array con las frases de entrenamiento. Sintaxis del array:["", "", ...].agent_language: El código de idioma de la intención. Por defecto: idioma principal del agente.
Respuesta
JSON
{
"success": true,
"response": true
}
dialogflow-entity
Crea una nueva Entidad en Dialogflow. La nueva Entidad se vinculará al agente sincronizado en el área de administración.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-entity.entity_nameRequerido: El nombre único de la Entidad.synonymsRequerido: Array de valores de la Entidad.- Sintaxis de valor único:
['value' => '', 'synonyms' => ['', '', ...]].
- Sintaxis de valor único:
agent_language: El código de idioma de la intención. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": true
}
dialogflow-get-entity
Devuelve una Entidad de Dialogflow, o todas las Entidades del agente.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-get-entity.entity_idRequerido: El ID de la Entidad. Déjelo vacío o inserteallpara obtener todas las Entidades. Por defecto:all.agent_language: El código de idioma de la intención. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"name":"projects/small-talk-43da7/agent/entityTypes/t5td1425-2k13-16cc-a7bb-f119b8d94112a",
"displayName":"woocommerce-products",
"kind":"KIND_MAP",
"autoExpansionMode":"AUTO_EXPANSION_MODE_DEFAULT",
"entities":[
{
"value":"Abstract Print Cotton Blouse",
"synonyms":[
"Abstract Print Cotton Blouse"
]
},
{
"value":"Cashmere Carpenter Beanie",
"synonyms":[
"Cashmere Carpenter Beanie"
]
},
...
],
"enableFuzzyExtraction":true
}
}
google-get-token
Genera un nuevo Token de Dialogflow y lo devuelve. El token es válido por 1 hora.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresegoogle-get-token.
Respuesta
JSON
{
"success": true,
"response": "ya27.a1AfH6SMDu9dn0TfRbNVAIEsSoeJPD1_jr1JpfL15..."
}
dialogflow-get-agent
Devuelve los detalles del agente de Dialogflow.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-get-agent.
Respuesta
JSON
{
"success": true,
"response": {
"parent":"projects/woocommerce-abcde",
"displayName": "ABCDE",
"defaultLanguageCode": "en",
"timeZone": "Europe/Madrid",
"enableLogging": true,
"matchMode": "MATCH_MODE_HYBRID" ,
"classificationThreshold": 0.6,
"apiVersion": "API_VERSION_V2",
"tier": "TIER_STANDARD"
}
}
dialogflow-set-active-context
Activa un contexto de Dialogflow en la sesión del usuario activo.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-set-active-context.context_nameRequerido: El nombre del contexto.user_idRequerido: El ID del usuario vinculado al contexto.parameters: Array de parámetros de Dialogflow vinculados al contexto. Ejemplo:{ "woocommerce-products": "Running Shoes" }.life_span: La vida útil del contexto. Por defecto: 5.token: Token de Sesión de Dialogflow (no es el Token de Actualización). Páselo si lo tiene; de lo contrario, se generará uno. Por defecto:false.language: El idioma del agente. Por defecto: idioma principal del agente.
Respuesta
JSON
{
"success":true,
"response": {
"responseId":"09f2f825-3dbf-4c27-a5bb-6bd0b71e44b9-1d846bd2",
"queryResult":{
"queryText":"sb-trigger-context",
"outputContexts":[
{
"name":"projects/abcde/agent/sessions/208/contexts/abcde",
"lifespanCount":4,
...
}
],
"languageCode":"en"
}
}
}
dialogflow-curl
Envía datos a Dialogflow. Utilice este método para enviar consultas a Dialogflow.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-curl.queryRequerido: La consulta de Dialogflow en formato JSON.language: El idioma del agente de Dialogflow. Por defecto:false.type: El tipo de llamada. Valores soportados:POST,GET,PATCH. Por defecto:POST.token: Token de Sesión de Dialogflow (no es el Token de Actualización). Páselo si lo tiene; de lo contrario, se generará uno. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": "..."
}
Devuelve la respuesta de Dialogflow.
dialogflow-human-takeover
Dispara la toma de control humana (human takeover) de Dialogflow.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-human-takeover.conversation_idRequerido: El ID de la conversación.auto_messages: Establézcalo entruepara enviar también mensajes de fuera de línea (offline), seguimiento (follow_up) y suscripción si están activos. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [true, true, ...]
}
dialogflow-smart-reply
Devuelve las sugerencias de respuesta inteligente (Smart Reply).
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresedialogflow-smart-reply.conversation_idRequerido: El ID de la conversación.messageRequerido: El mensaje de texto a partir del cual generar las sugerencias.dialogflow_language: El idioma del agente de Dialogflow. Por defecto:false.token: El token de acceso de Dialogflow. Por defecto:false.conversation_id(Segundo parámetro con el mismo nombre en la doc original, se refiere a OpenAI): Establézcalo para habilitar las sugerencias de OpenAI. Por defecto:false.
Respuesta
JSON
{
"suggestions": [
"I would be happy to help!",
"What can I do for you?",
...
],
"token": "ya29.a0AVvZVsrU7gAannWzuztBR-AphpjdWr0JrPoq9au0Ai",
"detected_language": false,
"smart_reply": false
}
open-ai-message
Envía un mensaje a OpenAI y devuelve la respuesta, opcionalmente añade la respuesta a una conversación existente como un nuevo mensaje.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseopen-ai-message.messageRequerido: La cadena que contiene el texto del mensaje.max_tokens: El número máximo de tokens de OpenAI que se pueden usar para generar el mensaje. Este parámetro cambia la longitud del mensaje de respuesta. Por defecto:false. Si este parámetro es falso, el valor por defecto es el guardado enConfiguración > Inteligencia Artificial > OpenAI > Max tokens, o se calcula automáticamente.model: El modelo de OpenAI. Por defecto:false. Si este parámetro es falso, el valor por defecto es el guardado enConfiguración > Inteligencia Artificial > OpenAI > Model.conversation_id: El ID de la conversación. Si se establece, la respuesta de OpenAI se añade a una conversación existente como un nuevo mensaje. Por defecto:false.audio: URL de un archivo de audio para el reconocimiento de voz. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": [
true,
"I am an AI digital assistant. How can I help you today?",
false,
false
]
}
Devuelve un array con el primer valor establecido en true si es exitoso, false en caso de error. El segundo valor es el mensaje de OpenAI si es exitoso, o el mensaje de error si falla.
open-ai-curl
Llama a la API de OpenAI (ChatGPT) y devuelve la respuesta.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseopen-ai-curl.url_part: La parte de la URL de la API. Por ejemplo, si quiere llamar ahttps://api.openai.com/v1/completions, ingrese solocompletions.post_fields: Los parámetros de la API en formato JSON.type: El tipo de llamada HTTP. Valores permitidos:GET,POST,UPLOAD.
Respuesta
JSON
{
"success": true,
"response": "..."
}
Devuelve la respuesta de OpenAI.
google-translate
Traduce múltiples cadenas a través de Google Translate.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresegoogle-translate.stringsRequerido: Array de las cadenas a traducir, ej.["Hello world", "How are you?"].language_codeRequerido: El código de idioma de dos letras al que desea traducir. Para Chino Tradicional usezt, para Chino Simplificado usezh, para Portugués Brasileño usept.
Respuesta
JSON
{
"success": true,
"response": [ "Ciao mondo", "Come stai?", ...]
}
google-language-detection-update-user
Detecta el idioma de un texto y lo asigna a un usuario.
Parámetros
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresegoogle-language-detection-update-user.stringRequerido: El texto del cual detectar el idioma.user_idRequerido: El ID del usuario.
Respuesta
JSON
{
"success": true,
"response": true
}
📱 WEB API: WhatsApp
La aplicación de WhatsApp es necesaria para utilizar este conjunto de APIs.
whatsapp-send-message
Envía un mensaje a un número de WhatsApp.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresewhatsapp-send-message.toRequerido: El número de teléfono del destinatario. Incluya el código del país. Ej.+39321305455.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
phone_id: El ID del número de teléfono. Obténgalo deConfiguración > WhatsApp. Este ajuste es necesario solo si ha sincronizado múltiples números de WhatsApp. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"messaging_product": "whatsapp",
"contacts": [
{
"input": "+16315551234",
"wa_id": "+16315551234"
}
],
"messages": [
{
"id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3N0EyQUJDMjFEQzZCQUMzODMA"
}
]
}
}
whatsapp-send-template
Envía una plantilla de WhatsApp a un número de WhatsApp.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresewhatsapp-send-template.toRequerido: El número de teléfono del destinatario. Incluya el código del país. Ej.+39321305455.template_nameRequerido: El nombre de la plantilla. Por defecto:Configuración > WhatsApp > Cloud API template fallback > Template name.template_languagesRequerido: Una cadena separada por comas de todos los códigos de idioma disponibles para la plantilla. Ej.en_US,it_IT. Por defecto:Configuración > WhatsApp > Cloud API template fallback > Template languages.phone_id: El ID del número de teléfono. Obténgalo deConfiguración > WhatsApp > Cloud API numbers. Por defecto:false.parameters: El array de parámetros de la plantilla en formato JSON. Ej.["A", "B,C", "D,E"].- El primer elemento del array son los parámetros del encabezado (header).
- El segundo son los parámetros del cuerpo (body).
- El tercero son los parámetros de los botones (button).
- Cada parámetro es una cadena separada por una coma.
- Por defecto:
Configuración > WhatsApp > Cloud API template fallback.
language: El idioma de la plantilla. Por defecto: cadena vacía.conversation_url_parameter: Establézcalo si el texto de la plantilla contiene el campo de combinación{conversation_url_parameter}. Por defecto: cadena vacía.user_name: Establézcalo si el texto de la plantilla contiene el campo de combinación{recipient_name}.user_email: Establézcalo si el texto de la plantilla contiene el campo de combinación{recipient_email}.recipient_id: El ID de usuario de ZampiBot al que le está enviando la plantilla. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"messaging_product": "whatsapp",
"contacts": [ ... ],
"messages": [
{
"id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3N0EyQUJDMjFEQzZCQUMzODMA"
}
]
}
}
💬 WEB API: Messenger
La aplicación de Messenger es necesaria para utilizar este conjunto de APIs.
messenger-send-message
Envía un mensaje a Messenger o Instagram.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresemessenger-send-message.psidRequerido: El PSID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Facebook. Obténgalo usando la funciónget-user.facebook_page_idRequerido: El ID de la Página de Facebook. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Facebook. Obténgalo usando la funciónget-conversation. El ID es el valorextra.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
metadata: Proporcione el ID del mensaje de ZampiBot vinculado a este mensaje. Inclúyalo siempre que sea posible para evitar problemas. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"recipient_id": "89995542233",
"message_id": "11445777889"
}
}
✈️ WEB API: Telegram
La aplicación de Telegram es necesaria para utilizar este conjunto de APIs.
telegram-send-message
Envía un mensaje a Telegram.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresetelegram-send-message.chat_idRequerido: El Chat ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Telegram. Obténgalo usando la funciónget-conversation. El ID es el valorextra.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
conversation_id: Esta configuración es necesaria solo si ha sincronizado múltiples bots de Telegram. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": {
"ok": true,
"result": {
"message_id": 2030,
"from": {
"id": 21202173,
"is_bot": true,
"first_name": "joe",
"username": "sb_officialbot"
},
"chat": {
"id": 148766722,
"first_name": "Fede",
"last_name": "Schio",
"username": "fedechioc",
"type": "private"
},
"date": 1699621061,
"text": "Hello!"
}
}
}
🟣 WEB API: Viber
La aplicación de Viber es necesaria para utilizar este conjunto de APIs.
viber-send-message
Envía un mensaje a Viber.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseviber-send-message.viber_idRequerido: El Viber ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Viber. Obténgalo usando la funciónget-user.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
Respuesta
JSON
{
"status":0,
"status_message":"ok",
"message_token":5741311803571721087,
"chat_hostname":"SN-CHAT-05_",
"billing_status":1
}
🟢 WEB API: LINE
La aplicación de LINE es necesaria para utilizar este conjunto de APIs.
line-send-message
Envía un mensaje a LINE.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseline-send-message.line_idRequerido: El LINE ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de LINE. Obténgalo usando la funciónget-user.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
Respuesta
JSON
{
"sentMessages": [
{
"id": "481156985669026149",
"quoteToken": "fKOxH1EKOAKYFLW6fe8vFGoKl2I2UZocU6KcoZgwtVrSTQjLbXFVer3Z-..."
}
]
}
🟢 WEB API: WeChat
La aplicación de WeChat es necesaria para utilizar este conjunto de APIs.
wechat-send-message
Envía un mensaje a WeChat.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresewechat-send-message.open_idRequerido: El WeChat ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de WeChat. Obténgalo usando la funciónget-user.message: El mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
token: El token de Google. Obténgalo de la respuesta de esta función. Inclúyalo siempre que sea posible por razones de rendimiento. Por defecto:false.
Respuesta
JSON
[
"{...}",
"5741311803571721087"
]
El primer elemento del array es la respuesta, el segundo elemento es el token.
💬 WEB API: Slack
La aplicación de Slack es necesaria para utilizar este conjunto de APIs.
send-slack-message
Envía un mensaje a Slack.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresesend-slack-message.user_idRequerido: El ID del usuario vinculado al mensaje.full_nameRequerido: El nombre del remitente, aparecerá en Slack a la izquierda del mensaje. Debería ser el nombre de un agente si el mensaje proviene de un agente, o el nombre del usuario en caso contrario.profile_image: La imagen de perfil del remitente, aparecerá en Slack a la izquierda del mensaje. Formatos soportados:PNGyJPG. Por defecto: vacío.message: El contenido del mensaje.attachments: Array de adjuntos en formato JSON.- Sintaxis del array:
[["nombre", "enlace"], ["nombre", "enlace"], ...]. - Reemplace
nombrecon el nombre del adjunto yenlacecon la URL completa. - Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. Por defecto:
[].
- Sintaxis del array:
channel: El canal de Slack vinculado al mensaje. Por razones de rendimiento, incluya siempre el canal. Obtendrá el canal después de la primera llamada de esta función, desde la respuesta (ejemplo: C011JFFGSKY).
Respuesta
JSON
{"success":true,"response":["C011JFFGSKY"]}
Otras posibles respuestas: slack-not-active, mensaje de error de MySQL o cURL.
archive-slack-channels
Archiva todos los canales de Slack. Si tiene muchos canales, esta operación puede tardar mucho tiempo en completarse y podría necesitar ejecutarla varias veces. Importante: Todos sus canales de Slack serán archivados.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingresearchive-slack-channels.
Respuesta
JSON
{
"success": true,
"response": true
}
slack-users
Devuelve la información de conexión de los miembros agentes-slack.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseslack-users.
Respuesta
JSON
{
"success": true,
"response": {
"slack_users": [
{
"id": "U328T701Z",
"name": "Support Schio"
},
{
"id": "UR5F0GK7T",
"name": "Robert Pitt"
}
...
],
"agents": [
{
"id": "2",
"name": "Alex Smith"
},
{
"id": "445",
"name": "Federico Schiocchet"
},
{
"id": "724",
"name": "Alberto Prade"
}
...
],
"saved": {
"U328T701Z": "445",
"UR5F0GK7T": "2"
...
}
}
}
slack-presence
Comprueba si un agente de Slack está en línea, si al menos un agente está en línea, o devuelve todos los usuarios en línea.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseslack-presence.agent_id: El ID del agente a verificar. Por defecto:false.list: Establézcalo entruepara devolver todos los usuarios en línea. Por defecto:false.
Respuesta
JSON
{
"success": true,
"response": online
}
Devuelve online u offline para la verificación de un solo agente. Devuelve un array de IDs de usuarios para la verificación de múltiples usuarios.
slack-channels
Devuelve la lista de todos los canales de Slack, incluyendo los canales archivados.
Argumentos
tokenRequerido: Su token secreto de administrador.functionRequerido: Ingreseslack-channels.
Respuesta
JSON
{
"ok": true,
"channels": [
{
"id": "C012AB3CD",
"name": "general",
"is_channel": true,
"is_group": false,
"is_im": false,
"created": 1449252889,
"creator": "U012A3CDE",
"is_archived": false,
"is_general": true,
"unlinked": 0,
"name_normalized": "general",
"is_shared": false,
"is_ext_shared": false,
"is_org_shared": false,
"pending_shared": [],
"is_pending_ext_shared": false,
"is_member": true,
"is_private": false,
"is_mpim": false,
"updated": 1678229664302,
"topic": {
"value": "Company-wide announcements and work-based matters",
"creator": "",
"last_set": 0
},
"purpose": {
"value": "This channel is for team-wide communication and announcements. All team members are in this channel.",
"creator": "",
"last_set": 0
},
"previous_names": [],
"num_members": 4
},
{
"id": "C061EG9T2",
"name": "random",
"is_channel": true,
"is_group": false,
"is_im": false,
"created": 1449252889,
"creator": "U061F7AUR",
"is_archived": false,
"is_general": false,
"unlinked": 0,
"name_normalized": "random",
"is_shared": false,
"is_ext_shared": false,
"is_org_shared": false,
"pending_shared": [],
"is_pending_ext_shared": false,
"is_member": true,
"is_private": false,
"is_mpim": false,
"updated": 1678229664302,
"topic": {
"value": "Non-work banter and water cooler conversation",
"creator": "",
"last_set": 0
},
"purpose": {
"value": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.",
"creator": "",
"last_set": 0
},
"previous_names": [],
"num_members": 4
}
],
"response_metadata": {
"next_cursor": "dGVhbTpDMDYxRkE1UEI="
}
}
slack-message-sent
Webhook enviado cuando se envía un mensaje a Slack.
Respuesta
JSON
{
"function": "slack-message-sent",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"message": "Hi! How are you doing?",
"conversation_id": "1057",
"slack_channel": "C028BGU6TTT"
}
}
🪝 WEB API: Webhooks
Los Webhooks son mensajes automatizados enviados desde ZampiBot a una URL cuando ocurre algo. Contienen datos personalizados y se envían a una URL única definida por usted.
Uso
- Inicie sesión en el área de administración y vaya a
Configuración > Misceláneas > Webhooks. - URL de destino: Ingrese la URL a donde ZampiBot enviará los datos. Esta URL debe apuntar a un archivo PHP que pueda leer los datos recibidos. Puede usar el siguiente código para capturar los datos:
$response = json_decode(file_get_contents('php://input'), true);La variable$responseserá un array. - Clave secreta (Secret key): Ingrese una contraseña secreta de su elección. Esta clave se incluye en todos los Webhooks; utilícela para validar el Webhook y asegurarse de que fue enviado por ZampiBot y no por un tercero.
- Active los Webhooks y guarde. ZampiBot comenzará a enviar los Webhooks de la lista a continuación a su URL.
Notas:
- La clave
sender-urlse incluye en todos los Webhooks y contiene la URL desde la cual se envía el webhook. - La configuración Webhooks activos define qué webhooks están habilitados. Ingrese los nombres de los webhooks separados por comas. Déjelo vacío para habilitar todos.
¿Falta algún Webhook? ¿Necesita un Webhook que aún no está disponible? ¡Contáctenos y lo agregaremos!
message-sent
Webhook enviado cuando un usuario o un agente envía un nuevo mensaje.
Respuesta
{
"function": "message-sent",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"user_id": "947",
"conversation_user_id": "947",
"conversation_id": "1057",
"conversation_status_code": "2",
"conversation_source": "wa",
"message_id": "2574",
"message": "Hello! How are you?",
"attachments": [["name","https://example.com/image.png"],["name","https://example.com/file.txt"]]
}
}
email-sent
Webhook enviado cuando se envía un correo electrónico de notificación a un usuario o a un agente.
Respuesta
{
"function": "email-sent",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"recipient_id": "957",
"message": "Hello! How can I help you?",
"attachments": [["name","https://example.com/image.png"],["name","https://example.com/file.txt"]]
}
}
sms-sent
Webhook enviado cuando un usuario o un agente envía un nuevo mensaje de texto (SMS).
Respuesta
{
"function": "sms-sent",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"recipent_id": "947",
"message": "Hello! How are you?",
"Body": "Hello! How are you?",
"From": "+15104564545",
"To": "+15305431221",
"response": {
"sid": "SM1f0e8ae6ade43cb3c0ce4525424e404f",
"date_created": "Fri, 13 Aug 2010 01:16:24 +0000",
"date_updated": "Fri, 13 Aug 2010 01:16:24 +0000",
"date_sent": null,
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"to": "+15305431221",
"from": "+15104564545",
"body": "A Test Message",
"status": "queued",
"flags":["outbound"],
"api_version": "2010-04-01",
"price": null,
"uri": "/2010-04-01/Accounts/ACXXXX/Messages/SM1f004f.json"
}
}
}
new-messages
Webhook enviado cuando se reciben nuevos mensajes en el widget de chat o en el área de administración. Si desea recibir mensajes enviados por usuarios desde plataformas externas como WhatsApp o Instagram, utilice message-sent en su lugar.
Respuesta
{
"function": "new-messages",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"details": {
"message": "Hello world!",
"message_id": "10231",
"attachments": "",
"payload": "",
"message_status_code": "0",
"last_update_time": "2024-04-02 16:57:19",
"message_user_id": "1964",
"message_first_name": "Don",
"message_last_name": "John",
"message_profile_image": "https://example.com/image.jpg",
"message_user_type": "admin",
"department": null,
"agent_id": null,
"title": "",
"source": null,
"extra": null,
"tags": null,
"id": "4607",
"user_id": "4747",
"creation_time": "2024-04-02 16:57:17",
"status_code": "1"
},
"messages": [
{
"details": {
"message": "Hello world!",
"attachments": "",
"payload": {},
"status_code": "0",
"id": "10231",
"profile_image": "https://example.com/image.jpg",
"first_name": "Don",
"last_name": "John",
"user_id": "1964",
"user_type": "admin",
"full_name": "Don John",
"creation_time": "2024-04-02 16:57:19"
}
}
]
}
}
dialogflow-message
Webhook enviado cuando Dialogflow envía una respuesta a un mensaje de usuario.
Respuesta
{
"function": "dialogflow-message",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"response": {
"token": "ya29.a0Afkjh8MADFYeT4BgCy3917xqSDdVvw4mgVHrgrLDcgRk9ajWoQAgdjv5e...",
"messages": [
{
"message": "Hi! How are you doing?"
}
],
"response": {
"responseId": "46d2c208-2a7f-4ca2-bd7d-6636982b8bee-0f0e27e1",
"queryResult": {
"queryText": "hi",
"action": "input.welcome",
"allRequiredParamsPresent": "true",
"fulfillmentText": "Hi! How are you doing?",
"fulfillmentMessages": [ ... ],
"outputContexts": [ ... ],
"intent": {
"name": "projects/api-project-655517752147/agent/intents...",
"displayName": "Default Welcome Intent"
},
"intentDetectionConfidence": "1",
"languageCode": "en"
},
"alternativeQueryResults": [ ... ]
}
},
"message": "Hello",
"conversation_id": 123456
}
}
message-deleted
Webhook enviado cuando se elimina un mensaje.
Respuesta
{
"function": "message-deleted",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": "2595"
}
La clave data contiene el ID del mensaje eliminado.
rich-message
Webhook enviado cuando el usuario presiona el botón de envío y los valores ingresados en el Mensaje Enriquecido (Rich Message) se envían a ZampiBot. Todos los Mensajes Enriquecidos que requieren el envío de datos activan este Webhook; algunos de ellos son el formulario de correo electrónico de seguimiento, el formulario de registro y los botones.
Respuesta
{
"function": "rich-message",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"result": true,
"data": {
"type": "inputs",
"result": {
"name": [
"Don Jhon",
"Name"
],
"your-email": [
"example@gmail.com",
"Your Email"
],
"site-url": [
"www.example.com",
"Site URL"
]
}
},
"id": "example"
}
}
new-conversation
Webhook enviado cuando se recibe una nueva conversación en el widget de chat del usuario.
Respuesta
{
"function": "new-conversation-received",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"messages": [
{
"id": "10222",
"user_id": "4746",
"message": "Hi there!",
"creation_time": "2024-04-02 07:26:18",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "4605",
"first_name": "User",
"last_name": "#19332",
"profile_image": "https://example.com/image.png",
"user_type": "lead"
},
{
"id": "10223",
"user_id": "377",
"message": "How are you?",
"creation_time": "2024-04-02 07:26:22",
"attachments": "",
"status_code": "2",
"payload": "{\"follow_up_message\":true,\"preview\":\"Preview text!\"]\"}",
"conversation_id": "4605",
"first_name": "Smart Assistant",
"last_name": "",
"profile_image": "https://example.com/image.png",
"user_type": "bot"
}
],
"details": {
"user_id": "4746",
"first_name": "User",
"last_name": "#19332",
"profile_image": "https://example.com/image.png",
"user_type": "lead",
"id": "4605",
"title": "",
"status_code": "0",
"creation_time": "2024-04-02 07:26:17",
"department": null,
"agent_id": null,
"source": null,
"extra": null,
"extra_2": null,
"extra_3": null,
"tags": null,
"busy": false
}
}
}
new-conversation-created
Webhook enviado cuando se crea una nueva conversación.
Respuesta
{
"function": "new-conversation-created",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"messages": [
{
"id": "10222",
"user_id": "4746",
"message": "Hi there!",
"creation_time": "2024-04-02 07:26:18",
"attachments": "",
"status_code": "0",
"payload": "",
"conversation_id": "4605",
"first_name": "User",
"last_name": "#19332",
"profile_image": "https://example.com/image.png",
"user_type": "lead"
},
{
"id": "10223",
"user_id": "377",
"message": "How are you?",
"creation_time": "2024-04-02 07:26:22",
"attachments": "",
"status_code": "2",
"payload": "{\"follow_up_message\":true,\"preview\":\"Preview text!\"]\"}",
"conversation_id": "4605",
"first_name": "Smart Assistant",
"last_name": "",
"profile_image": "https://example.com/image.png",
"user_type": "bot"
}
],
"details": {
"user_id": "4746",
"first_name": "User",
"last_name": "#19332",
"profile_image": "https://example.com/image.png",
"user_type": "lead",
"id": "4605",
"title": "",
"status_code": "0",
"creation_time": "2024-04-02 07:26:17",
"department": null,
"agent_id": null,
"source": null,
"extra": null,
"extra_2": null,
"extra_3": null,
"tags": null,
"busy": false
}
}
}
conversation-status-updated
Webhook enviado cuando cambia el código de estado de una conversación.
Respuesta
{
"function": "conversation-status-updated",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"conversation_id": "1057",
"status_code": "0"
}
}
Códigos de estado: activo = 0, esperando respuesta del usuario = 1, esperando respuesta del agente = 2, archivado = 3, papelera = 4.
login
Webhook enviado cuando un usuario inicia sesión correctamente desde el formulario de inicio de sesión del chat. Este Webhook se envía solo si el inicio de sesión es exitoso.
Respuesta
{
"function": "login",
"key": "xxxxxxxx",
"data": {
"details": {
"id": "18",
"profile_image": "https://schiocco.s3.amazonaws.com/3045506.png",
"first_name": "Fede",
"last_name": "",
"email": "fede@fede.com",
"user_type": "user",
"token": "ec83c134e5d53be98abd0025145473eec0ff814e",
"url": "https://sandbox.cloud.board.support\/script",
"password": "$2y$10$vYtwWDEqOt7jMSBcCmPigOrqw06tdD8ZSFm70L6c1PLEQ8j938l2W",
"conversation_id": "false"
}
},
"sender-url": "http:\/\/localhost\/"
}
registration
Webhook enviado cuando un usuario se registra correctamente desde el formulario de registro del chat. Este Webhook se envía solo si el registro es exitoso. También se envía si el registro se actualiza a través del formulario de registro de un Mensaje Enriquecido.
Respuesta
{
"function": "registration",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"id": "example",
"conversation_id": "123",
"user": {
"profile_image": [
"https://board.support/user.svg",
"Profile image"
],
"first_name": [
"Don",
"First name"
],
"last_name": [
"John",
"Last name"
],
"email": [
"example@email.com",
"Email"
],
"password": [
"12345678",
"Password"
],
"password-check": [
"12345678",
"Repeat password"
],
"user_type": [
"user",
""
]
},
"extra": {
"phone": [
"+02123456789",
"Phone"
],
"city": [
"London",
"City"
]
}
}
}
user-deleted
Webhook enviado cuando se elimina un usuario.
Respuesta
{
"function": "user-deleted",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": "951"
}
La clave data contiene el ID del usuario eliminado.
new-email-address
Webhook enviado cuando un usuario registra su correo electrónico a través de un mensaje de seguimiento, mensaje de suscripción o mensaje enriquecido de correo electrónico.
Respuesta
{
"function": "new-email-address",
"key": "xxxxxxxx",
"sender-url": "https://example.com",
"data": {
"name": "John Doe",
"email": "email@example.com"
}
}