Skip to content

Funciones

Con esta guía aprenderás a dominar las Funciones de uContact, que te permiten crear desarrollos personalizados y potenciar el uso de la plataforma mediante automatizaciones.

¿Qué son?

Las Funciones son procesos que se ejecutan de forma automática cuando se cumple una condición o se recibe una solicitud. Pueden activarse de tres maneras:

  • Webhook: Cuando un servicio externo envía datos a uContact.
  • Evento: Cuando ocurre una acción interna en la plataforma.
  • Scheduler: Cuando se llega a una fecha/hora o intervalo programado.

¿Cómo crear una función?

  1. Dirígete a Automatizaciones dentro del Menú de Administrador y luego haz clic en Funciones.
  1. Presiona el botón Nuevo ubicado en la esquina superior derecha.
  2. Elige el tipo de función que quieres crear.

Tipos de funciones

En uContact existen tres tipos de funciones, cada una diseñada para automatizar acciones de distinta manera.

Webhook

Integra uContact con otras aplicaciones o servicios externos recibiendo datos hacia la plataforma. Los Webhooks se ejecutan al realizar una llamada GET, POST, PUT o DELETE a una ruta específica.

  • Nombre: Nombre único asociado al Webhook.
  • URL: Este campo se completará automáticamente con el URL del Webhook una vez que se haya creado.
  • Descripción: Texto breve que explique el propósito del Webhook y qué datos procesa.

¿Cómo se crean?

  1. Selecciona el tipo Webhook y agrega opcionalmente una descripción que describa la función del Webhook. Luego, haz clic en Guardar.
  2. Una vez creado, se abrirá automáticamente el Diseñador de flujos desde dónde podrás desarrollar la lógica personalizada que necesites.
  3. Luego de que termines de desarrollar el flujo, debes hacer click en el botón Producción y el flujo quedará listo para utilizar. En caso de que tengas alguna duda sobre cómo utilizar el Diseñador de Flujos, puedes consultar la siguiente guía

Solo se aceptan peticiones con Content-Type:

  • application/json
  • application/x-www-form-urlencoded

Ruta de ejecución

https://<instancia>.ucontactcloud.com/api/webhook/<nombreDelWebhook>

Debes reemplazar <instancia> por el nombre de la instancia sin .ucontactcloud.com. Por ejemplo, si la instancia es https://marketing.ucontactcloud.com y el Webhook se llama leads:

https://marketing.ucontactcloud.com/api/webhook/leads

Variables disponibles

Al ejecutar un flujo de webhook, se crean variables globales accesibles desde JavaScript con la información de la petición:

METHOD
  • Tipo: String
  • Descripción: Método HTTP usado (GET, POST, PUT, DELETE).
BODY
  • Tipo: Object
  • Descripción: Cuerpo de la solicitud si es application/json.
  • Ejemplo:
json
{ "name": "Daniel", "age": 23 }
FORM_PARAMS
  • Tipo: Object
  • Descripción: Cuerpo de la solicitud si es application/x-www-form-urlencoded.
  • Ejemplo:
json
{ "param1": "valor1", "param2": "valor2" }
HEADERS
  • Tipo: Object
  • Descripción: Encabezados enviados en la solicitud.
  • Ejemplo:
json
{
  "Accept": "*/*",
  "Cache-Control": "no-cache",
  "Connection": "close",
  "User-Agent": "PostmanRuntime/7.26.8"
}
QUERY_PARAMS
  • Tipo: Object
  • Descripción: Parámetros enviados por URL (clave=valor).
  • Ejemplo:
https://instancia.ucontactcloud.com/api/webhook/test?phone=123123&name=John

Genera:

json
{ "phone": "123123", "name": "John" }

¿Qué puedes hacer en el flujo?

Dentro del flujo de un Webhook, puedes ejecutar todas las acciones disponibles en el Diseñador, por ejemplo:

  • Consultar la base de datos.
  • Ejecutar métodos de la API de uContact.
  • Utilizar cualquier actividad del Diseñador de Flujos.
  • ¡Y más!
¡Respuesta del Webhook!

Si no se utiliza la actividad SetWebhookResponse en el flujo, por defecto la respuesta será 200 con cuerpo vacío. Si se utiliza esta actividad, se puede tener control total de la respuesta: código de estado, cuerpo y headers.

Botito

¡Veamos un ejemplo!

Una empresa quiere que cada vez que alguien complete un formulario en su sitio web (con nombre, correo y teléfono), esos datos se guarden automáticamente en uContact como un nuevo lead para llamarlo utilizando un Hub Saliente.

  • El formulario del sitio web hace un POST al webhook configurado en uContact https://marketing.ucontactcloud.com/api/webhook/leads.
  • En el flujo del webhook, se procesa el BODY recibido:
json
{ 
  "name": "María Pérez", 
  "email": "maria@example.com", 
  "phone": "59891234567",
  "product": "Credit card"
}
  • Con esos datos, el flujo se encarga de agregar el lead al Hub Saliente deseado utilizando la API de leads de uContact. Conocé más sobre las APIs de uContact utilizando la siguiente guía.

Eventos

Ejecuta acciones automáticamente cuando sucede un evento en la plataforma.

  • Nombre: Nombre único asociado al evento.
  • Evento: Acción interna de uContact que disparará la función (ejemplo: Agente se loguea, Interacción tipificada).
    • ¿Cuáles son estos eventos?
      Conoce el detalle de los eventos accediendo a la siguiente guía.
  • URL: Endpoint externo al que se enviará la información del evento mediante POST (opcional si se usa un flujo interno).
  • Descripción: Explica opcionalmente qué hará la función al activarse y en qué casos se utiliza.

Funcionamiento

Cuando se produce un evento en uContact, puedes configurar que:

  • Se envíe un POST a una URL externa.
  • Se ejecute un flujo personalizado dentro de uContact.

En ambos casos, el evento se pasa como objeto EVENT con toda su información:

json
{
  "type": "agent_logged_in",
  "timestamp": "2025-08-11T14:32:00Z",
  "agent": "juanperez",
  "campaign": "Ventas"
}

¡Veamos un ejemplo!

Una empresa quiere que cada vez que un usuario inicie sesión en uContact, se registre ese evento en un sistema externo de monitoreo.

  • Se crea un evento en uContact del tipo Agent Logged.
  • Cada vez que ocurre, uContact dispara un POST a la URL configurada en el flujo, por eejemplo https://monitoring.com/api/agent-activity.
  • El cuerpo enviado podría ser:
json
{
  "type": "agent_logged_in",
  "timestamp": "2025-08-18T09:30:00Z",
  "agent": "jlopez",
  "campaign": "Soporte"
}
  • El sistema externo recibe los datos y guarda un registro en su base de datos para luego mostrarlo en el dashboard de actividad.

Scheduler

Automatiza tareas que se ejecutan de manera programada.

  • Nombre: Nombre único asociado al Scheduler.
  • Tipo: Acción a ejecutar cuando el scheduler se active:
    • SQL script: Ejecuta un script o consulta SQL sobre la base de datos configurada.
    • Shell script: Ejecuta un comando o script en la terminal del servidor.
    • Exportar: Genera un archivo de exportación con datos según la configuración definida (CSV, XLSX, etc.).
  • Descripción: Indica qué tarea realizará, el motivo y cualquier detalle importante.
  • Tarea habilitada: Indica si la tarea está habilitada o no, por defecto viene habilitada. En caso de estar deshabilitada, no se ejecutará.
¡Cuidado!

Recuerda que los Schedulers se ejecutan en el servidor, por lo cuál no es conveniente realizar tareas muy pesadas en horario de producción. Es recomendable ejecutar estas tareas en horarios fuera de producción para evitar problemas de estabilidad mientras los usuarios están trabajando.

Botito

Configuración

En esta pestaña, debes realizar la configuración necesaria dependiendo del tipo de tarea que hayas seleccionado.

  • SQL script: Escribe la sentencia SQL que deseas ejecutar en la base de datos.
  • Shell script: Escribe los comandos a ejecutar en la consola del Servidor.
  • Exportar: Escribe la sentencia SQL para obtener la información que deseas exportar. Luego, selecciona de que forma deseas exportar esa información,

Agenda

En esta pestaña, puedes seleccionar la frecuencia de ejecución de la tarea. La frecuencia de ejecución puede configurarse utilizando minutos, horas, días del mes, meses y días de la semana. No es necesario utilizar todos los campos; puedes combinarlos según tus necesidades específicas.

Minutos
  • Cada minuto: La tarea se ejecutará cada minuto.
  • Cada x minutos: Permite seleccionar un intervalo específico en minutos para la ejecución de la tarea.
  • Seleccionar minutos: Permite seleccionar minutos específicos en los que deseas que se ejecute la tarea.
Horas
  • Cada hora: La tarea se ejecutará cada hora.
  • Cada x horas: Permite seleccionar un intervalo específico en horas para la ejecución de la tarea.
  • Seleccionar horas: Permite seleccionar horas específicas en las que deseas que se ejecute la tarea.
Días del mes
  • Cada día: La tarea se ejecutará todos los días a una hora específica.
  • Cada x días: Permite seleccionar un intervalo específico en días para la ejecución de la tarea.
  • Seleccionar días: Permite seleccionar días específicos del mes en los que deseas que se ejecute la tarea.
Meses
  • Cada mes: La tarea se ejecutará cada mes.
  • Cada x meses: Permite seleccionar un intervalo específico en meses para la ejecución de la tarea.
  • Seleccionar meses: Permite seleccionar meses específicos en los que deseas que se ejecute la tarea.
Días de la semana
  • Cada día de la semana: La tarea se ejecutará todos los días de la semana.
  • Cada x días de la semana: Permite seleccionar un intervalo específico en días de la semana para la ejecución de la tarea.
  • Seleccionar días de la semana: Permite seleccionar días específicos de la semana en los que deseas que se ejecute la tarea.

¿Cómo verificar la configuración?

Para verificar si la frecuencia configurada es la esperada, a medida que realizas cambios, puedes observar dos cuadros de verificación. En el primero se mostrará la expresión y en el otro podrás visualizar una descripción del detalle la frecuencia de ejecución de la tarea. Por ejemplo, "La tarea se ejecutará todos los días a las 12:00 horas."


¡Veamos algunos ejemplos de ejecución!

Debajo podrás observar algunos ejemplos de frecuencias de ejecución de tareas para que puedas probar. En cada una se detalla que valores irían en cada opción.

Tarea que se ejecute todos los días a las 00:00 horas

  • Minutos: 00
  • Horas: 00
  • Días del mes: Todos los días
  • Meses: Todos los meses
  • Días de la semana: Todos los días

Expresión cron: 0 0 * * *
Descripción: La tarea se ejecutará todos los días a las 00:00 horas.

Tarea que se ejecute cada una hora todos los lunes

  • Minutos: 00
  • Horas: Cada hora
  • Días del mes: Todos los días
  • Meses: Todos los meses
  • Días de la semana: Lunes

Expresión cron: 0 * * * 1
Descripción: La tarea se ejecutará cada una hora todos los lunes.

Tarea que se ejecute todos los primeros de mes a las 09:00 horas

  • Minutos: 00
  • Horas: 09
  • Días del mes: 1
  • Meses: Todos los meses
  • Días de la semana: Todos los días

Expresión cron: 0 9 1 * *
Descripción: La tarea se ejecutará todos los primeros de mes a las 09:00 horas.

¡Veamos un ejemplo práctico!

Un supervisor quiere recibir todos los días a las 9:00 AM un archivo con las interacciones atendidas del día anterior.

  • Se crea una función de tipo Scheduler llamada reporte_diario_interacciones con el tipo Exportar.
  • Se programa para que corra todos los días a las 9:00 AM.
  • El archivo generado se envía automáticamente al correo del supervisor o queda disponible para descarga en el sistema.

De esta forma, los Schedulers permiten programar tareas repetitivas como exportar datos, ejecutar scripts SQL o comandos en el servidor, sin necesidad de hacerlo manualmente.

uContact by net2phone