Saltar a contenido

Variables personalizadas

Personalización en emails

Existen dos tipos de variables que pueden ser utilizadas a la hora de personalizar un email:

  • Variables de contacto
  • Variables del envío

Las variables del contacto permiten lanzar emails personalizados con, por ejemplo, el nombre del contacto, por ejemplo:

<p>Hola ###nombre###, 
este es un email con saludo personalizado</p>

El dato ###nombre### se obtendrá de la ficha de cada contacto y se personalizará para cada uno de los participantes de un email o campaña

Las variables del contacto van encerradas entre tres almohadillas (###) y se puede consultar el nombre de los campos de la ficha del contacto en: Campos

Por el contrario, las variables de un envío son datos que se asocian exclusivamente al envío y se enviarán a todos los participantes de dicho envio o campaña (un solo contacto si es un envio individual o transaccional)

Estas variables se facilitan en la petición de envío y es un diccionario, hash o array asociativo en json cuya clave es el nombre de la variable y el valor el dato a parsear

Los comodín para las variables del envío serán los nombres de las variables pasadas encerrados entre corchetes ([[[var_name]]])

Por ejemplo, si el html tiene:

<p>Hola ###nombre###, Aprovecha 
el descuento del [[[discount]]]% antes de que termine [[[expire]]].</p>

Podemos lanzar la siguiente campaña por api:

curl -X POST https://app.teenvio.com/v4/public/api/rest/v3/campaign/ \
-H "X-Token: $token" \
-H "content-type: application/json" \
-d '{
    "rid":1,
    "pid":1,
    "contact_id":1,
    "name":"test vars",
    "subject":"This is a test",
    "vars":{
        "discount": 20,
        "expire": "Enero"
    }
}'
<?php

$token = 'Your token';

$url_base = 'https://app.teenvio.com/v4/public/api/rest/v3'

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_URL => $url_base.'/campaign/',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => array(
        'Accept: application/json',
        'X-Token: $token',
        'Content-Type: appliation/json'
    ),
    CURLOPT_POSTFIELDS => '{
        "rid":1,
        "pid":1,
        "contact_id":1,
        "name":"test vars",
        "subject":"This is a test",
        "vars":{
            "discount": 20,
            "expire": "Enero"
        }
    }'
);

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import requests

token = 'Your token'

url_base = 'https://app.teenvio.com/v4/public/api/rest/v3'

my_headers = {
    'Accept' : 'application/json',
    'X-Token' : token,
    'Content-Type' : 'application/json'
}
post_request = {
    "rid":1,
    "pid":1,
    "contact_id":1,
    "name":"test vars",
    "subject":"This is a test",
    "vars":{
        "discount": 20,
        "expire": "Enero"
    }
}

response = requests.post(url_base+"/campaign/", json=post_request, headers=my_headers)

print(response.json())
const axios= require('axios');

const token = 'Your token';

const url_base = 'https://app.teenvio.com/v4/public/api/rest/v3';

const my_headers = {
    'Accept' : 'application/json',
    'X-Token' : token
};

const post_request = {
    "rid":1,
    "pid":1,
    "contact_id":1,
    "name":"test vars",
    "subject":"This is a test",
    "vars":{
        "discount": 20,
        "expire": "Enero"
    }
}

axios.post(url_base+'/campaign/', post_request, {headers:my_headers}).then(resp => {
    console.log(resp.data);
});

Si asumimos que el campo nombre del contacto id 1 es "Ana", el resultado del envío sería el siguiente contenido:

<p>Hola Ana, Aprovecha 
el descuento del 20% antes de que termine Enero.</p>

Personalización en SMS

Para los SMS siempre tenemos que tener en cuenta la limitación en el número de caracteres (160 carácteres por sms/crédito). Por ello la personalización de los sms es más sencilla, con un único comodín que puede ser personalizado por una única variable y con el fin poder controlar la longitud del SMS, se solicita una longitud máxima para el contenido del campo personalizado.

Se utilizará los siguientes datos para la personalización del sms:

  • custom_field: Nombre del campo a utilizar para personalizar el texto
  • custom_field_length: Longitud del campo personalizado

El comodín a utilizar dentro del texto del SMS será:

  • ###personalizado###
curl -X POST https://app.teenvio.com/v4/public/api/rest/v3/sms \
-H "X-Token: $token" \
-H "content-type: application/json" \
-d '{
    "name": "hola mundo",
    "email": "contact@domain.com",
    "tel": "+34666666666",      
    "src": "teenvio",
    "custom_field": "nombre",
    "custom_field_length": 20,
    "text":"Hola ###personalizado###, este es un test por api desde curl"
}'
<?php

$curl = curl_init();

$url_base = 'https://app.teenvio.com/v4/public/api/rest/v3'

curl_setopt_array($curl, array(
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_URL => $url_base.'/sms/',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => array(
        'Accept: application/json',
        'X-Token: $token',
        'Content-Type: application/json'
    ),
    CURLOPT_POSTFIELDS => '{
        "name": "hola mundo",
        "email": "contact@domain.com",
        "tel": "+34666666666",      
        "src": "teenvio",
        "custom_field": "nombre",
        "custom_field_length": 20,
        "text":"Hola ###personalizado###, este es un test por api desde curl"
    }'
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import requests

token = 'Your token'

url_base = 'https://app.teenvio.com/v4/public/api/rest/v3'

my_headers = {
    'Accept' : 'application/json',
    'X-Token' : token,
    'Content-Type' : 'application/json'
}
post_request = {
    "name": "hola mundo",
    "email": "contact@domain.com",
    "tel": "+34666666666",      
    "src": "teenvio",
    "custom_field": "nombre",
    "custom_field_length": 20,
    "text":"Hola ###personalizado###, este es un test por api desde curl"
}

response = requests.post(url_base+"/sms/", json=post_request, headers=my_headers)

print(response.json())
const axios= require('axios');

const token = 'Your token';

const url_base = 'https://app.teenvio.com/v4/public/api/rest/v3';

const my_headers = {
    'Accept' : 'application/json',
    'X-Token' : token
};

const post_request = {
    "name": "hola mundo",
    "email": "contact@domain.com",
    "tel": "+34666666666",      
    "src": "teenvio",
    "custom_field": "nombre",
    "custom_field_length": 20,
    "text":"Hola ###personalizado###, este es un test por api desde curl"
}

axios.post(url_base+'/sms/', post_request, {headers:my_headers}).then(resp => {
    console.log(resp.data);
});