Como usar modificadores para variáveis

​​Com a SendPulse, você pode usar modificadores para variáveis de chatbot para transformar seu valor de acordo com as regras que você definir. Por exemplo, você pode formatar texto, datas, números de telefone e URLs.

Vamos falar sobre modificadores de variáveis ​​e como usá-los em seus chatbots.

Sintaxe do modificador

Você pode modificar os dados usando <{{ var_name | function(parameter="value") }}, onde:

var_name Um nome de variável.
função() Uma função modificadora.
parâmetro Um parâmetro de função.
value Um valor de parâmetro.

Você pode usar a sintaxe do modificador em datas, caixa alta, comprimento do string, número de telefone e URLs.

Modificadores de string

str_to_lower() Converte todos os caracteres em minúsculas.

Por exemplo: variável title = "TITLE."

{{ title | str_to_lower() }}

Resultado: título.

str_to_upper() Converte todos os caracteres em letras maiúsculas.

Por exemplo, a variável de título = "title."

{{ title | str_to_upper() }}

Resultado: TÍTULO.

str_capitalize() Converte todos os caracteres em uma string e coloca seu primeiro caractere em caixa alta.

Por exemplo, a variável de título = "title".

{{ title | str_capitalize() }}

Resultado: Título.

str_length() Retorna o comprimento de uma string.

Por exemplo: título = "title".

{{ title | str_length() }}

Resultado: 5.

str_limit(limit="100", end="...") Corta uma string para o comprimento especificado.
  • limit é um parâmetro opcional que define o comprimento máximo de uma string (o tamanho padrão é 100 caracteres).
  • fim é um parâmetro opcional que passa os caracteres no final de uma string delimitada (o padrão é "...").

    Você pode limitar o número de caracteres em sua mensagem a 1.000 para garantir que ela seja entregue com precisão. Para fazer isso, digite {{ informações | str_limit(limit="1000") }}.

implode(separator="") Combina os elementos de um array usando um string separador.
  • separator é um parâmetro opcional cujo padrão é uma string vazia.
Por exemplo, {{ $["lista"] | implode(separator=", ") }} exibe dados separados por vírgula de uma matriz obtida como resultado de uma solicitação de dados externa.
array_get(key="*.keyname") Recupera um valor de um array ou objeto aninhado usando a notação de ponto, que é uma maneira de acessar as propriedades do objeto e os valores da matriz. Um ponto (.) e um asterisco (*) aparecem como uma parte de array e um número de elemento. Pode ser assim: array.*.object.id.

Por exemplo, se você precisar obter nomes de uma matriz, poderá usar {{ $["users"] | array_get(key="*.name") | implode("\n ") }}para gerar os campos de nome de uma matriz de objetos linha por linha.

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

Produz a sequência correspondente ao padrão de expressão. Se a expressão regular contiver um grupo (), ela produz o primeiro.

Por exemplo, para extrair uma parte do link https://calendly.com/d/1n7-w04-ars/my- entre "d/" e "/", especifique {{link | match(pattern="/.+\/d\/(.+)\/.+/")}}.

Resultado: 1n7-w04-ars.

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

Produz uma matriz de sequências correspondentes ao padrão de expressão. Se a expressão regular contiver grupos, ela produzirá uma matriz de grupos.

Por exemplo, para extrair uma parte do link https://calendly.com/d/1n7-w04-ars/my-lesson entre "d/" e "/" e selecionar o primeiro valor dos resultados obtidos, especifique {{link|match_all(pattern="/.+\/d\/(.+)\/(.+)/")| array_get(key="0")}}.

Resultado: 1n7-w04-ars.

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

Divide a sequência em uma matriz usando um separador.

Por exemplo, para dividir a sequência https://calendly.com/d/1n7-w04-ars/my-lesson usando o caractere "/", e extrair o quinto elemento dessa matriz, especifique {{ link | explode(separator="/")|array_get(key="4")}}.

Resultado: 1n7-w04-ars.

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

Produz uma sequência a partir do caractere especificado com o comprimento especificado.

Por exemplo, para produzir uma parte do link https://calendly.com/d/1n7-w04-ars/my-lesson a partir do 23º caractere e com os próximos 11 caracteres, especifique {{link | substr(start="23", length="11")}}.

Resultado: 1n7-w04-ars.

str | preg_replace()

Substitui certos elementos de texto que correspondem a um padrão específico pela string especificada. Você pode usar essa função para substituir ou remover automaticamente texto em conjuntos de dados grandes.

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

A função é aplicada diretamente a uma string (STRING). Ela substitui todas as instâncias do padrão especificado (/\d*/) pela substituição especificada (*). O parâmetro limit indica o número máximo de substituições a serem feitas.

Por exemplo, se sua string de entrada for Hello123World456, a função substituirá todos os dígitos por asteriscos, resultando em Hello***World***.

Números e datas

modifiers number_round(precision="0", mode="ROUND_HALF_UP") Direciona um número para uma determinada precisão (o número de dígitos após um ponto decimal).

precision pode ser negativa ou zero (por padrão, é 0).

Se precision for positiva, o número será arredondado para a precision após um ponto decimal.

Se precision for negativa, o número será arredondado para a precisão especificada antes do ponto decimal (arredondado para a potência de dez mais próxima). Por exemplo, se sua presicion igual a -1, o número será arredondado para dezenas e, se sua precision for igual a -2, o número será arredondado para centenas.

Você pode aprender mais sobre possíveis valores do modo de arredondamento na documentação do PHP.

number_format("0", decimal_separator=".",",") Formata um número com milhares agrupados e dígitos decimais.
  • decimals define o número de casas decimais. Se for 0, decimal_separator será omitido do valor de retorno.
  • decimal_separator define o separador decimal.
  • miles_separator define o separador de milhares.

    Por exemplo, para facilitar a leitura de números grandes, você pode separar milhares com vírgulas. Para fazer isso, digite number_format(thousands_separator=",")

date(from_format="d.m.Y", format="d.m.Y", modify="") Formata uma string de data de acordo com o formato fornecido.
  • from_format é um parâmetro opcional que especifica o formato do qual você deseja converter os dados de data. (padrão: 'd.m.Y').
  • format é um parâmetro opcional que especifica o formato para o qual você deseja converter os dados de data (padrão: 'd.m.Y').
  • modify é um parâmetro opcional que modifica a própria data, por exemplo, "+1 dia" adicionará um dia a partir da data original.

Apenas os seguintes modificadores são suportados: +/-day(s), +/-month(s), +/-year(s).

Leia mais sobre modificadores de data na documentação do PHP.

Por exemplo, se você deseja obter a data no formato, pode usar {{ signup_date | date(format="F jS")}}.

Resultado: 5 de janeiro.

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

Este modificador retorna ao gerar um valor com o tipo date_time.

  • from_format é um parâmetro opcional que especifica o formato do qual você deseja converter os dados de data (padrão: 'd.m.Y H:i').
  • format é um parâmetro opcional que especifica em qual formato os dados de data e hora são exibidos (padrão: 'd.m.Y H:i').
  • modify é um parâmetro opcional que altera a própria data, por exemplo,+1 hora adicionará uma hora a partir da data e hora de início.

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

Outros modificadores

phone(formig-fix-handle_api_exceptionat="INTERNATIONAL") Formata uma string com um número de telefone de acordo com o formato dado.
  • format é um parâmetro opcional que especifica o formato para o qual você deseja converter um número de telefone (o padrão é INTERNATIONAL).

As opções de formato possíveis são:

  • INTERNACIONAL (+380 63 706 7928)
  • NACIONAL (063 706 7928)
  • E164 (+380637067928)
  • RFC3966 (tel:+380-63-706-7928)
urlencode() Retorna uma string onde todos os caracteres não alfanuméricos exceto para hifens (-), sublinhados (_) e pontos (.) devem ser substituídos pelo sinal de porcentagem (%) seguido por dois números hexadecimais e espaços codificados como o sinal de mais (+). A string é codificada da mesma forma que os dados POST do formulário da web, ou seja, o application/x-www-form-urlencoded .

O modificador pode ser usado para passar os valores recebidos do assinante para a API Request, por exemplo, como um parâmetro get.

Características de uso

Vamos falar sobre possíveis erros que podem ocorrer ao usar modificadores de variáveis ​​e formas de combinar modificadores.

Você pode aplicar modificadores ao elemento "Mensagem" em um fluxo ou campanha e todos os outros elementos onde você pode inserir e usar variáveis. Você pode obter variáveis ​​usando a função "User Variable Input" ou uma resposta a um elemento "API Request".

Quando você está chamando uma função modificadora e ela não possui parâmetros, os colchetes "()" podem ser omitidos.

Se um nome de variável contiver }} e | símbolos, então eles devem ser escapados com \}\} e \| no nome.

Se um valor de parâmetro contiver }}, | e " símbolos, devem ser precedidos por \}\}, \| e \". O valor do parâmetro é sempre fornecido em "" como uma string.

Possíveis erros

Se um modificador não puder processar uma variável, ele a retornará da mesma forma que estava antes de o modificador ser aplicado. Por exemplo, se aplicarmos o {{ name|phone(format="INTERNATIONAL") }} à variável name = “John,” obteremos "John" como resposta porque a variável não é um número de telefone.

Se um modificador não puder ser aplicado a uma variável, o usuário não verá um erro.

Os erros são exibidos apenas se houver problemas com a sintaxe do modificador, não com os dados recebidos do usuário.

Combinando modificadores

Você pode combinar vários modificadores, por exemplo:

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

Se você deseja cortar o tamanho da string variável em até 10 caracteres e, em seguida, converter todos os caracteres da string em letras maiúsculas, esta expressão ficará assim:

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

Usando modificadores no construtor de chatbot

Você pode usar modificadores nos elementos de fluxo descritos na tabela abaixo.

O elemento "Mensagem" Adicione um modificador ao seu elemento de texto para enviar a mensagem modificada.
O elemento "Solicitação de API" Adicione um modificador ao campo de link ou corpo da requisição para enviar a requisição modificada.
O elemento "Ação" Adicione um modificador ao campo de valor da variável na ação "Definir variável" para armazenar a variável modificada.

Mostraremos alguns exemplos de como usar modificadores no criador de chatbots da SendPulse.

Exemplo de formatação de nome

Pense em seu cenário de fluxo. Em nosso exemplo, coletaremos o feedback do visitante, então queremos obter primeiro o nome do nosso convidado e, em seguida, dar a ele a oportunidade de compartilhar sua impressão.

Vá para o seu fluxo ou crie-o, adicione o "Mensagem" e digite seu texto onde você pede ao assinante para compartilhar seus dados pessoais. Ative a opção "Aguardar resposta do assinante". No campo "Validar como", selecione "String" e escolha uma variável.

Clique em Aplicar e adicione o próximo elemento “Mensagem”.

O assinante pode inserir seu nome com uma letra minúscula por engano, mas queremos endereçá-lo corretamente, então usamos o str_title() variável.

Aqui está o que parece para um assinante.

Exemplo de formatação de data

Pense em um cenário em que um visitante deseja reservar uma mesa para uma data específica. Ao mesmo tempo, o cliente deve receber sua reserva confirmada depois de selecionar uma data.

Adicione o elemento "Mensagem" e digite seu texto onde você pede ao assinante para compartilhar seus dados pessoais. Ative a "Aguardar resposta do assinante". No campo "Validar como", selecione "Data" e escolha uma variável.

Clique Aplicar e adicione o próximo elemento "Mensagem".

Queremos que a data da reserva seja sempre exibida no mesmo formato, por isso adicionamos o {{ order_date | date(format="d.m.Y") }} modificador de variável.

Esta é a resposta que o usuário receberá quando selecionar uma data.

Exemplo de criação de link para o Google Agenda

Se você deseja oferecer aos usuários o agendamento de um evento na agenda, você pode adicionar intervalos de tempo disponíveis usando botões ou respostas rápidas, ou pode solicitar sua própria data e hora no elemento “Mensagem”.

Armazene o valor resultante em uma variável do tipo "Data e hora".

Agora para obter o link para criar uma reunião no Google Agenda, adicione a string à sua mensagem:

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

Em que title é uma variável do público do chatbot para o nome da reunião.

booked_datetime é uma variável para a data e hora selecionadas do início da reunião.

Ymdé ano, mês e dia sem espaços.

T é um separador estático de data e hora.

Hi são horas e minutos sem espaços.

00 são segundos definidos estaticamente.

A primeira data e hora é a hora de início da reunião ajustada para o fuso horário (-2 horas para o horário de Kiev). A segunda data é a hora de término, em uma hora.

Z é o indicador de data no fuso horário UTC.

ctz=Europe%2FKyiv é um ponteiro do fuso horário no qual a Agenda gera a hora do evento.

Suponha que o usuário especifique a data e a hora: "28.02.2023 11:00".

E o chatbot gera um 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

O link aparece na caixa de diálogo como parte da mensagem.

Após clicar no link, o usuário recebe um modelo de reunião pronto em sua agenda.

    Rate this article about "Como usar modificadores para variáveis"

    User Rating: 4 / 5 (4)

    Anterior

    Como copiar um fluxo de chatbot de um aplicativo de mensagens para outro

    Próximo

    Como usar expressões regulares em chatbots

    Popular em nosso blog

    Crie seu chatbot hoje mesmo