Cómo usar modificadores para variables

Con SendPulse puedes usar modificadores de variables para transformar su valor de acuerdo a las reglas que establezcas. Por ejemplo, puedes formatear texto, fechas, números de teléfono y direcciones URL.

Hablemos de los modificadores de variables y cómo usarlos en tus chatbots.

Sintaxis del Modificador

Puedes modificar datos usando {{ var_name | function(parameter="value") }}, donde:

var_name Nombre de variable.
function() Función modificadora,
parameter Parámetro de función.
value Valor de parámetro

Puedes usar la sintaxis del modificador en fechas, mayúsculas y minúsculas, longitud de cadena, números de teléfono y URL.

Cadenas

str_to_lower()

Convierte todos los caracteres a minúsculas.

Por ejemplo: título de la variable = "TÍTULO".

{{ título | str_to_lower() }}

Resultado: título.

str_to_upper()

Convierte todos los caracteres a mayúsculas.

Por ejemplo, la variable de título = "title."

{{ title | str_to_upper() }}

Resultado: TÍTULO.

str_capitalize()

Convierte todos los caracteres en una cadena y pone en mayúscula su primer carácter.

Por ejemplo, la variable de título = "title."

{{ title | str_capitalize() }}

Resultado: Título.

str_length()

Devuelve la longitud de una cadena.

Por ejemplo: título = "title".

{{ title | str_length() }}

Resultado: 5.

str_limit(limit="100", end="...")

Trunca una cadena a la longitud especificada.

  • limit es un parámetro opcional que define la longitud máxima de una cadena (la longitud predeterminada es de 100 caracteres).
  • end es un parámetro opcional que pasa los caracteres al final de una cadena delimitada (el predeterminado es "...").

    Puedes limitar la cantidad de caracteres en tu mensaje a 1000 para asegurarte de que se entregue con precisión. Para hacer esto, escribe {{ info | str_limit(limit="1000") }}.

implode(separator="")

Combina los elementos de una matriz de cadena separador.

  • separator es un parámetro opcional que por defecto es una cadena vacía.
Por ejemplo, {{ $["list"] | implode(separator=", ") }} muestra datos separados por comas de una matriz obtenida como resultado de una solicitud de datos externa.
array_get(key="*.keyname")

Recupera un valor de una matriz u objeto anidado utilizando la notación de puntos, que es un forma de acceder a las propiedades del objeto y los valores de la matriz. Un punto (.) y un asterisco (*) aparecen como un segmento de matriz y un número de elemento. Puede tener este aspecto: array.*.object.id.

Por ejemplo, si necesitas obtener nombres de una matriz, puedes usar{{ $["users"] | array_get(key="*.name") | implode("\n ") }}para generar los campos de nombre de una matriz de objetos línea por línea.

{{str|match(pattern="/.*some(regex).*/")}}

Genera la cadena correspondiente a la expresión.patrón. Si la expresión regular contiene un grupo(), genera el primero.

Por ejemplo, para extraer una parte del enlace https://calendly.com/d/1n7-w04-ars/my-lesson entre "d/" y "/", especifica {{link | match(pattern="/.+\/d\/(.+)\/.+/")}}

Resultado:1n7-w04-ars.

{{str|match_all(pattern="/.*(some)\s(regex).*/")}}

Genera una matriz de cadenas correspondientes al patrón de expresión. Si la expresión regular contiene matrices, genera una matriz de grupos.

Por ejemplo, para extraer una parte del enlace https://calendly.com/d/1n7-w04-ars/my-lesson entre "d/" y "/" y selecciona el primer valor de los resultados obtenidos, especifica {{link|match_all(pattern="/.+\/d\/(.+)\/(.+)/")| array_get(key="0")}}

Resultado:1n7-w04-ars.

{{str| explode(separator="/")}}

Divide la cadena en una matriz usando un separador.

Por ejemplo, para dividir la cadena https://calendly.com/d/1n7-w04-ars/my-lesson usando el carácter "/" y extrayendo el quinto elemento de esta matriz, especifica {{ link | explode(separator="/")|array_get(key="4")}}

Resultado:1n7-w04-ars.

{{str| substr(start="", length="")}}

Genera una cadena que comienza desde el carácter especificado con la longitud especificada.

Por ejemplo, para generar una parte del enlace https://calendly.com/d/1n7-w04-ars/my-lesson comenzando desde el carácter 23 y tomando los siguientes 11 caracteres, especifica {{link | substr(start="23", length="11")}}

Resultado:1n7-w04-ars.

{{str | preg_replace()}} Reemplaza determinados elementos de texto que coinciden con un patrón específico por la cadena indicada. Puedes utilizar esta función para sustituir o eliminar texto automáticamente en grandes bases de datos.

{{str | preg_replace(pattern="/\d+/", replacement="*", limit="4")}}

La función se aplica directamente a una cadena (STRING). Sustituye todas las variantes del patrón indicado (/\d*/) por el reemplazo especificado (*). El parámetro limit indica el número máximo de reemplazos a realizar.

Por ejemplo, si tu cadena de entrada es Hello123World456,la función reemplazará todos los dígitos por asteriscos, dando como resultado Hello***World***.

Número y Fecha

number_round(precision="0", mode="ROUND_HALF_UP")

Redondea un número a la precision especificada (el número de dígitos después de un punto decimal).

precision puede ser negativa o cero (por defecto, es 0).

Si la precision es positiva, el número se redondea al número de precision especificado después de un punto decimal.

Si la precision es negativa, el número se redondea a la precisión especificada antes del punto decimal (redondeo a la potencia de diez más cercana). Por ejemplo, si tu precision es igual a -1, el número se redondea a las decenas y si tu precision es igual a -2, el número se redondea a las centenas.

Puedes obtener más información sobre los posibles valores del modo de redondeo en la documentación de PHP.

number_format(decimals="0", decimal_separator=".", thousands_separator=",")

Da formato a un número con miles agrupados y dígitos decimales.

  • decimals establece el número de lugares decimales. Si es 0, decimal_separator se omite del valor de retorno.
  • decimal_separator establece el separador decimal.
  • thousands_separator establece el separador de miles.

    Por ejemplo, para que los números grandes sean más fáciles de leer, puedes separar los miles con comas. Para hacer esto, escribe number_format(thousands_separator=",")

date(from_format="d.m.Y", format="d.m.Y", modify="")

Formatea una cadena de fecha según el formato dado.

  • from_format es un parámetro opcional que especifica el formato al cual quieres convertir los datos de la fecha. (default: 'd.m.Y').
  • format es un parámetro opcional que especifica el formato al cual quieres convertir los datos de la fecha. (default: 'd.m.Y').
  • modify es un parámetro opcional que modifica la fecha por sí mismo, por ejemplo, "+1 day" añadirá un día a la fecha original.

Sólo se admiten los siguientes modificadores: +/-day(s), +/-month(s), +/-year(s).

Más información sobre los modificadores de fecha en La documentación PHP.

Por ejemplo, si deseas obtener la fecha en el formato "mes y fecha", puedes utilizar {{ signup_date | date(format="F jS")}}.

Resultado: 5 de enero.

 

date_time(from_format="d.m.Y H:i", format="d.m.Y H:i", modify="")

Vuelve cuando se emite un valor de tipo date_time type.

  • from_format es un parámetro opcional que especifica el formato a partir del cual deseas convertir los datos de fecha (default: 'd.m.Y H:i').
  • format es un parámetro opcional que especifica en qué formato de fecha y tiempo se mostrarán los datos (default: 'd.m.Y H:i').
  • modify es un parámetro opcional que cambia la fecha misma, por ejemplo, +1 hour añade una hora a la fecha y hora de inicio.

Modificadores admitidos: +/-minute(s), +/-hour(s), +/-day(s), +/-month(s), +/-year(s).

Otros Modificadores

phone(formig-fix-handle_api_exceptionat="INTERNATIONAL")

Formatea una cadena con un número de teléfono según el formato dado.

  • format es un parámetro opcional que especifica el formato al que deseas convertir un número de teléfono (el predeterminado es INTERNATIONAL).

Las opciones de formato posibles son:

  • INTERNATIONAL (+380 61 33 3333)
  • NATIONAL (061 333 3333)
  • E164 (+380613333333)
  • RFC3966 (tel:+380-61-333-333)
urlencode()

Devuelve una cadena donde todos los caracteres no alfanuméricos, excepto para guiones (-), guiones bajos (_) y puntos (.), deben reemplazarse con el signo de porcentaje (%) seguido de dos números hexadecimales y espacios codificados como el signo más (+). La cadena se codifica igual que los datos POST del formulario web, es decir, el application/x-www-form-urlencoded.

El modificador se puede usar para pasar los valores recibidos del suscriptor a la solicitud de API, por ejemplo, como un parámetro de obtención.

Características de Uso

Hablemos de posibles errores que pueden ocurrir al usar modificadores de variables y formas de combinar modificadores.

Puedes aplicar modificadores al elemento "Mensaje" en un flujo o campaña y todos los demás elementos donde puedes insertar y usar variables. Puedes obtener variables utilizando la función "Entrada de variable de usuario" o una respuesta a un elemento de "Solicitud de API".

Cuando estás llamando a una función modificadora y no requiere parámetros, se pueden omitir los corchetes "()". 

Si un nombre de variable contiene }} y | símbolos, entonces deben escaparse con \}\} y \| en el nombre.

Si un valor de parámetro contiene }}, | y " símbolos, deben escaparse con \}\}, \| y \". El valor del parámetro siempre se da en "" como una cadena. 

Posibles Errores

Si un modificador no puede procesar una variable, la devuelve en la misma forma en que estaba antes de aplicar el modificador. Por ejemplo, si aplicamos el {{ name|phone(format="INTERNATIONAL") }} a la variable de nombre = "Juan", obtenemos "Juan" como respuesta porque la variable no es un número de teléfono.

Si no se puede aplicar un modificador a una variable, el usuario no verá un error.

Los errores se muestran sólo si hay problemas con la sintaxis del modificador, no con los datos recibidos del usuario.

Combinación de Modificadores

Puedes combinar varios modificadores, por ejemplo:

{{variable_name|modifier_name1(parameter_name1="value",parameter_name2="value",parameter_name3="value",)|modifier_name2()|modifier_name_N()}}

Si quieres truncar la longitud de la cadena variable hasta 10 caracteres y luego convertir todos los caracteres de la cadena a mayúsculas, la expresión se verá así:

{{ String | str_limit(limit="10") | str_to_upper }}

Uso de Modificadores en el Generador de Chatbots

Puedes utilizar modificadores en los elementos de flujo descritos en la siguiente tabla.

El elemento "Mensaje"

Agrega un modificador a tu elemento de texto para enviar el mensaje modificado.

El elemento "Solicitud de API"

Añade un modificador a tu campo de enlace o cuerpo de solicitud para enviar la solicitud modificada.

El elemento "Acción"

Agrega un modificador al campo de valor variable en la acción "Establecer variable" para almacenar la variable modificada.

Te mostraremos algunos ejemplos de cómo utilizar modificadores en el generador de chatbot de SendPulse.

Ejemplo de Formato de Nombre de Suscriptor

Piensa en tu escenario de flujo. En nuestro ejemplo, recopilaremos comentarios de los visitantes, por lo que primero queremos obtener el nombre de nuestro invitado y luego darle la oportunidad de compartir su impresión.

Ve a tu flujo o créelo, agrega el elemento "Mensaje" y escribe tu texto donde se le pide al suscriptor que comparta sus datos personales. Habilita la opción de Esperar respuesta del suscriptor, y en el campo "Validar como", selecciona "Cadena" y escoge una variable.

Haz clic en Aplicar y agrega el siguiente elemento "Mensaje".

El suscriptor puede ingresar su nombre con una letra minúscula por error, pero queremos dirigirnos a él correctamente, por lo que usamos el str_title() modificador de variable.

Así es como lo ve un suscriptor.

Ejemplo de Formato de Fecha

Piensa en un escenario en el que un visitante desea reservar una mesa para una fecha específica. Al mismo tiempo, el cliente debe recibir una confirmación de reserva después de seleccionar una fecha.

Agrega el elemento "Mensaje" y escribe tu texto donde le pides al suscriptor que comparta sus datos personales. Habilita la opción "Esperar respuesta del suscriptor". En el campo "Validar como", selecciona "Fecha" y escoge una variable.

Haz clic en Aplicar y agrega el siguiente elemento "Mensaje".

Queremos que la fecha de la reserva se muestre siempre en el mismo formato, por lo que agregamos {{ order_date | date(format="dmY") }} modificador de variable.

Esta es la respuesta que recibirá el usuario cuando seleccione una fecha.

Creación de un enlace a Google Calendar Ejemplo

Si deseas ofrecerle a los usuarios la posibilidad de programar eventos en el calendario, puedes añadir franjas horarias disponibles mediante botones o respuestas rápidas o, bien, solicitarles su propia fecha y hora en el elemento "Mensaje".

Almacena el valor resultante en una variable de tipo "Fecha y hora".

Ahora, para obtener el enlace para crear una reunión en Google Calendar, añade la cadena a tu mensaje:

https://www.google.com/calendar/render?action=TEMPLATE&text={{title|urlencode()}}&dates={{booked_datetime|date_time(format="YmdTHi00", modify="-2 hours")}}Z%2F{{booked_datetime|date_time(format="YmdTHi00", modify="-1 hours")}}Z&ctz=Europe%2FKyiv

Donde title es la variable de la audiencia del chatbot por el nombre de la reunión.

booked_datetime es una variable para la fecha y hora seleccionadas del inicio de la reunión.

Ymd es una fecha en formato año, mes y día sin espacios.

T es un separador estático de fecha y hora.

Hi son horas y minutos sin espacios

00 son segundos establecidos estáticamente.

La primera fecha y hora es la hora de inicio de la reunión ajustada a la zona horaria (-2 horas para la hora de Kiev). La segunda fecha es su hora de finalización, dentro de una hora.

Z es el indicador de fecha en la zona horaria UTC

ctz=Europe%2FKyiv es un puntero de la zona horaria en la que el Calendario genera la hora del evento.

Supongamos que el usuario especifica la fecha y la hora: "28.02.2023 11:00".

Y el chatbot genera un link como este:

https://www.google.com/calendar/render?action=TEMPLATE&text=%D0%9F%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F+%C2%ABUnidragon%C2%BB&dates=20230228T090000WITH%2F20230228T100000Z&ctz=Europe%2FKyiv

El enlace aparece en el cuadro de diálogo como parte del mensaje.

Tras hacer clic en el enlace, el usuario recibe en su calendario una plantilla prediseñada de la reunión.

    Califica este artículo sobre "Cómo usar modificadores para variables"

    Opinión de los usuarios: 5 / 5 (8)

    Anterior

    Cómo Copiar un Flujo de Chatbot de una Plataforma de Mensajería a Otra

    Siguiente

    Cómo usar expresiones regulares en chatbots

    Popular en nuestro blog

    Pruebe SendPulse hoy mismo gratis