Referencia de la API

Hellotext ofrece una poderosa API REST diseñada para la felicidad del desarrollador. Nos esforzamos constantemente en mantener todos los recursos y acciones simples y consistentes.

Todas las respuestas tienen formato y se devuelven en JSON.

https://api.hellotext.com

Autenticación

Todas las solicitudes a la API deben ser autenticadas. La autenticación se realiza enviando un token con cada solicitud a la API.

Puede crear y administrar tus tokens de autorización desde la sección de Ajustes. Todos los tokens de autorización son específicos del negocio desde el cual se crearon.

Para autenticar, asegúrate de incluir un encabezado de autorización con el formato Authorization: Bearer {token}. Reemplaza el token con el token de autorización.

curl https://api.hellotext.com/v1/profiles \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Errores

Hellotext utiliza códigos de respuesta HTTP convencionales para indicar el estado de una solicitud. Cuando una solicitud es válida pero no se completa como se esperaba, respondemos con un un error 422 y un objeto JSON de errores objeto, incluida una colección de errores que incluye el tipo y la descripción.

Atributos
string
Código en formato string que representa el error.
string
Descripción detallada del error.
string
Nombre del parámetro asociado al error.
400 Bad Request
A menudo falta un parámetro requerido.
401 Unauthorized
No hay clave de API válida.
404 Not Found
El recurso o objeto solicitado no existe.
422 Request Failed
Los parámetros eran válidos pero la solicitud falló.
500, 502, 503, 504 Server errors
Algo salió mal.
ambiguous_parameter
Se proporcionaron uno o más parámetros posibles para el mismo rol. Especifique al menos uno de los valores posibles.
invalid
El valor que proporcionaste para el parámetro no es correcto. Por favor, verifica la documentación para obtener el valor correcto.
not_allowed
La operación no está permitida. Generalmente porque el objeto se encuentra en un estado que no permite la acción.
not_found
Este objeto no fue encontrado. Tal vez fue borrado.
object_invalid
Se debe proporcionar al menos uno de los parámetros opcionales.
parameter_invalid_empty
Uno o más parámetros obligatorios están vacíos.
parameter_missing
Este parámetro es requerido.
parameter_not_unique
El valor debe ser único y ya está presente en otro objeto del mismo tipo.
session_assigned_to_another_profile
Esta sesión ha sido asignada a otro perfil. No se puede usar para rastrear eventos para el perfil actual.
undefined_property
Intentó establecer una propiedad en un perfil que no existía.
{
  "errors": [
    {
      "type": "parameter_missing",
      "message": "This parameter is required.",
      "parameter": "name"
    }
  ]
}

Paginación

Todas las colecciones de recursos de primer nivel se pueden paginar. Las colecciones se ordenan por fecha de creación, mostrando primero los objetos más recientes y limitando los resultados a 25 de forma predeterminada. Para ajustar la cantidad de resultados, puedes utilizar el parámetro limit.

Dado que nuevos objetos serán creados, para mantener el orden consistente en la paginación, puedes obtener el siguiente conjunto de resultados a partir del último ID de la colección anterior utilizando el parámetro starting_after. Esto incluye el siguiente conjunto de resultados después de (excluyendo) el id proporcionado. Esto también se llama paginación vectorial.

También puedes lograr lo contrario y recuperar todos los resultados hasta el identificado dado utilizando el parámetro ending_before.

Parámetros
string
Muestra los resultados después (más antiguos) que el identificador proporcionado.
string
Muestra los resultados antes (más recientes) que el identificador proporcionado.
integer
Limite la cantidad de resultados que se mostrarán. El valor predeterminado es 25. El máximo es 100.
curl -G https://api.hellotext.com/v1/profiles \
  -d starting_after="BvYeyVYz" \
  -d limit=10 \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Perfiles

Los clientes se representan como perfiles. Cada objeto de perfil representa las características de cada cliente y su historial de interacciones con el negocio.

Cada perfil acepta cualquier número de propiedades como números de teléfono, correos electrónicos, direcciones geo-localizadas, atributos personales como cumpleaños, sexo o cualquier otro caso personalizado.

  • POST

    v1/profiles

  • GET

    v1/profiles/:id

  • PATCH

    v1/profiles/:id

  • DELETE

    v1/profiles/:id

  • GET

    v1/profiles

  • POST

    v1/profiles/:id/subscribe

  • POST

    v1/profiles/:id/unsubscribe

  • POST

    v1/profiles/:id/verify

  • DELETE

    v1/profiles/:id/verify

El objeto de perfil

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre profile.
Boolean
¿Este perfil ha sido bloqueado o no?. Este es true o false.
Epoch
Fecha de creación del objeto.
array
Colección con todos los correos electrónicos en este perfil establecidos como propiedades de tipo email
String
Nombre del cliente representado en el perfil.
String
Apellido del cliente representado en el perfil.
array
Colección con todas las listas de las que forma parte este perfil. Mostrar atributos
array
Una colección de todos los números de teléfono verificados o no verificados en este perfil establecidos como propiedades del tipo phone, enumerados en formato e164.
array
Array de hashes que representan los objetos de identidades del perfil. Por ejemplo números de teléfono, identidades de Mercado Libre. Mostrar atributos
Enum
El estado actual del perfil que indica si el perfil está suscrito explícitamente para recibir contenido promocional o no desea recibir ninguna comunicación promocional.
Valores enum posibles
unconfirmed Defecto
subscribed
unsubscribed
array
Una colección de todos los correos electrónicos verificados del perfil.
array
Una colección de todos los números de teléfono verificados del perfil.
{
  "id": "MzYwlE50",
  "type": "profile",
  "blocked": false,
  "created_at": 1665684173,
  "emails": [
    "will.e@acme.com"
  ],
  "first_name": "Will E",
  "last_name": "Coyote",
  "lists": [
    {
      "id": "zN4Xx4Km",
      "type": "list",
      "name": "Greens",
      "created_at": 1665684173
    }
  ],
  "phones": [
    "+59898000001"
  ],
  "properties": [
    {
      "id": "MQNKalb7",
      "kind": "address",
      "value": {
        "city": "Montevideo",
        "country": "UY",
        "latitude": "-0.349044168e2",
        "longitude": "-0.561370421e2",
        "notes": null,
        "postal_code": "11300",
        "region": "Departamento de Montevideo",
        "street": {
          "name": "Av. Luis Alberto de Herrera",
          "number": "1248"
        },
        "subregion": "CH"
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "birthday",
      "name": null,
      "value": {
        "day": 3,
        "month": 11,
        "year": 1985
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "email",
      "name": null,
      "value": "will.e@acme.com",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "phone",
      "name": null,
      "value": "+59898000001",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "gender",
      "name": null,
      "value": "male"
    }
  ],
  "state": "subscribed",
  "verified_emails": [
    "will.e@acme.com"
  ],
  "verified_phones": [
    "+59898000001"
  ]
}

Crear un perfil

Crea un nuevo perfil.

Parámetros
hash
Establezca la dirección para la propiedad address predeterminada. Puede pasar un objeto de dirección u, opcionalmente, proporcionar una cadena como address[suggest]. Al proporcionar la cadena de sugerencia, deconstruiremos la cadena y construiremos un objeto address a partir de ella.
String
Establece la dirección para la propiedad address con el nombre declarado entre corchetes. Por ejemplo, address[work]= configurará la dirección para la propiedad address con el nombre work. La propiedad se creará automáticamente para el perfil actual si aún no existe.
String
Establece la dirección de correo electrónico para la propiedad email predeterminada.
String
Establece la dirección de correo electrónico para la propiedad email con el nombre declarado entre corchetes. Por ejemplo, email[trabajo]= configurará el correo electrónico para la propiedad email con el nombre trabajo. La propiedad se creará automáticamente para el perfil actual si aún no existe.
String
Nombre del cliente representado en el perfil.
String
Apellido del cliente representado en el perfil.
array
Una colección de nombres de lista a la que se agregará este perfil. Se crearán nuevas listas cuando no existe una lista con este nombre
String
Establece el número de teléfono para la propiedad phone predeterminada. Espera un número en formato e164 o un número en formato local que se convertirá a e164 utilizando el país comercial como prefijo de país.
String
Establece el número de teléfono para la propiedad phone con el nombre declarado entre corchetes. Por ejemplo, phone[trabajo]= configurará el teléfono para la propiedad phone con el nombre trabajo. La propiedad se creará automáticamente para el perfil actual si aún no existe.
String
Establece un valor de propiedad pasando el nombre de la propiedad, por ejemplo property[Active]=true. Si la propiedad no tiene nombre, es posible hacer referencia a ella pasando su tipo como su nombre, es decir, property[gender]=male.
String
Establece un valor de propiedad pasando el id de la propiedad, por ejemplo, property[gVlpOkwJ]=MiValor.
Boolean
Utiliza el valor true para suscribir al cliente en la creación del perfil. Si el cliente ya otorgó el consentimiento para recibir comunicaciones promocionales de tu marca, puedes indicarlo de esta manera. El valor predeterminado es false, lo que significa que los nuevos perfiles no se suscriben automáticamente.
curl -X POST https://api.hellotext.com/v1/profiles 
 -d first_name="Will E" 
 -d last_name="Coyote" 
 -d phone="+59899000001" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50"
}

Obtener un perfil

Obtener un perfil existente.

curl -G https://api.hellotext.com/v1/profiles/MzYwlE50 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Modificar un perfil

Modifica el perfil especificado con la información proporcionada.

Parámetros
hash
Establezca la dirección para la propiedad address predeterminada. Puede pasar un objeto de dirección u, opcionalmente, proporcionar una cadena como address[suggest]. Al proporcionar la cadena de sugerencia, deconstruiremos la cadena y construiremos un objeto address a partir de ella. Proporcionar un valor vacío elimina la dirección predeterminada del perfil. Por ejemplo, address='' o address={}.
String
Establece un valor de propiedad de dirección pasando la identificación de la propiedad, por ejemplo address[gVlpOkwJ]=MiValor. Pasar un valor vacío eliminará la dirección del perfil. Por ejemplo, address[gVlpOkwJ]='' eliminará la dirección con la identificación dada.
String
Establece la dirección para la propiedad address con el nombre declarado entre corchetes. Por ejemplo, address[work]= configurará la dirección para la propiedad address con el nombre work. La propiedad se creará automáticamente para el perfil actual si aún no existe. Pasar un valor vacío eliminará la dirección del perfil. Por ejemplo, address[work]='' eliminará la dirección work del perfil.
String
Establece la dirección de correo electrónico para la propiedad email predeterminada. Pasar un valor vacío eliminará el correo electrónico predeterminado, por ejemplo, email='' eliminará el correo electrónico predeterminado. Si el perfil tiene otros correos electrónicos, el segundo correo electrónico se marcará como el nuevo predeterminado.
String
Establezca un valor de propiedad de e-mail pasando la identificación de la propiedad, por ejemplo email[gVlpOkwJ]=will.e@acme.com. Pasar un valor vacío elimina el correo electrónico del perfil. Por ejemplo, email[gVlpOkwJ]='' eliminará el email del perfil.
String
Establece la dirección de correo electrónico para la propiedad email con el nombre declarado entre corchetes. Por ejemplo, email[trabajo]= configurará el correo electrónico para la propiedad email con el nombre trabajo. La propiedad se creará automáticamente para el perfil actual si aún no existe. Pasar un valor vacío elimina el correo electrónico del perfil. Por ejemplo, email[trabajo]='' eliminará el e-mail trabajo del perfil.
String
Nombre del cliente representado en el perfil.
String
Apellido del cliente representado en el perfil.
array
Una colección de nombres de a la que se agregará este perfil. Pasar una colección vacía [] se va eliminar el perfil de todas las listas.
hash
Nueva dirección predeterminada del perfil. Si está presente, reemplazará la dirección predeterminada y se convertirá en la nueva predeterminada. Sin eliminar la antigua dirección predeterminada.
String
Nuevo e-mail por defecto del perfil. Si está presente, reemplaza el e-mail por defecto y ser el e-mail defecto del perfil. Sin eliminarando el viejo e-mail defecto.
String
Nuevo teléfono por defecto del perfil. Si está presente, reemplaza el teléfono por defecto y ser el teléfono defecto del perfil. Sin eliminarando el viejo teléfono defecto.
String
Establece el número de teléfono para la propiedad phone predeterminada. Espera un número en formato e164 o un número en formato local que se convertirá a e164 utilizando el país comercial como prefijo de país. Pasar un valor vacío eliminará el teléfono predeterminado del perfil. Por ejemplo, phone='' eliminará el teléfono predeterminado del perfil. Si el perfil tiene otros números de teléfono, el segundo número de teléfono se marca como el nuevo predeterminado
String
Establezca un valor de propiedad de teléfono pasando la identificación de la propiedad, por ejemplo phone[gVlpOkwJ]=099888888. Pasar un valor vacío elimina el correo electrónico del perfil. Por ejemplo, phone[gVlpOkwJ]='' eliminará el phone del perfil.
String
Establece el número de teléfono para la propiedad phone con el nombre declarado entre corchetes. Por ejemplo, phone[trabajo]= configurará el teléfono para la propiedad phone con el nombre trabajo. La propiedad se creará automáticamente para el perfil actual si aún no existe Pasar un valor vacío elimina el teléfono del perfil. Por ejemplo, phone[trabajo]='' eliminará el teléfono trabajo del perfil.
String
Establece un valor de propiedad pasando el nombre de la propiedad, por ejemplo property[Active]=true. Si la propiedad no tiene nombre, es posible hacer referencia a ella pasando su tipo como su nombre, es decir, property[gender]=male.
String
Establece un valor de propiedad pasando el id de la propiedad, por ejemplo, property[gVlpOkwJ]=MiValor.
curl -X PATCH https://api.hellotext.com/v1/profiles/MzYwlE50 
 -d email="will.e@acme.com" 
 -d gender="male" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "updated": true
}

Eliminar un perfil

Elimina el perfil especificado. Eliminar un perfil significa que todas sus propiedades serán eliminadas. Las conversaciones asociadas serán preservadas. Puedes restaurar el perfil una vez más a través del panel de control o la API cambiando el estado de suscripción del perfil a subscribed.

curl -X DELETE https://api.hellotext.com/v1/profiles/MzYwlE50 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "profile",
  "deleted": true
}

Listar todos los perfiles

Enumera los perfiles existentes ordenados por los más recientes. Los parámetros de paginación están disponibles en listas.

Parámetros
String
Limite el resultado a los perfiles que tienen el e-mail especificado.
String
Mostrar resultados listados antes (más recientes) que el id dado.
String
Limite los resultados a los perfiles que tienen el nombre especificado
String
Limite los resultados a los perfiles que tienen el apellido especificado
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
Enum
El orden para clasificar los perfiles. Si se especifica un valor no válido, se utiliza el orden predeterminado.
Valores enum posibles
activity Defecto

Ordenar por la última fecha de actividad del perfil. Los perfiles con actividad más reciente aparecerán primero.

alphabetically

Ordenar por apellido, nombre.

created_at

Ordenar por la fecha de creación del perfil.

String
Limite el resultado a los perfiles que tienen el teléfono especificado.
String
Limite los resultados a los perfiles que tienen el valor de propiedad especificado.
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/profiles 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "profiles": [
    {
      "id": "MzYwlE50",
      "type": "profile",
      "blocked": false,
      "created_at": 1665684173,
      "emails": [
        "will.e@acme.com"
      ],
      "first_name": "Will E",
      "last_name": "Coyote",
      "lists": [
        {
          "id": "zN4Xx4Km",
          "type": "list",
          "name": "Greens",
          "created_at": 1665684173
        }
      ],
      "phones": [
        "+59898000001"
      ],
      "properties": [
        {
          "id": "MQNKalb7",
          "kind": "address",
          "value": {
            "city": "Montevideo",
            "country": "UY",
            "latitude": "-0.349044168e2",
            "longitude": "-0.561370421e2",
            "notes": null,
            "postal_code": "11300",
            "region": "Departamento de Montevideo",
            "street": {
              "name": "Av. Luis Alberto de Herrera",
              "number": "1248"
            },
            "subregion": "CH"
          }
        },
        {
          "id": "MQNKalb7",
          "kind": "birthday",
          "name": null,
          "value": {
            "day": 3,
            "month": 11,
            "year": 1985
          }
        },
        {
          "id": "MQNKalb7",
          "kind": "email",
          "name": null,
          "value": "will.e@acme.com",
          "verified": true
        },
        {
          "id": "MQNKalb7",
          "kind": "phone",
          "name": null,
          "value": "+59898000001",
          "verified": true
        },
        {
          "id": "MQNKalb7",
          "kind": "gender",
          "name": null,
          "value": "male"
        }
      ],
      "state": "subscribed",
      "verified_emails": [
        "will.e@acme.com"
      ],
      "verified_phones": [
        "+59898000001"
      ]
    },
    "{...}",
    "{...}"
  ]
}

Suscribir un perfil

Marca un perfil como suscrito para recibir comunicaciones promocionales de tu marca.

curl -X POST https://api.hellotext.com/v1/profiles/MzYwlE50/subscribe 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "profile",
  "blocked": false,
  "created_at": 1665684173,
  "emails": [
    "will.e@acme.com"
  ],
  "first_name": "Will E",
  "last_name": "Coyote",
  "lists": [
    {
      "id": "zN4Xx4Km",
      "type": "list",
      "name": "Greens",
      "created_at": 1665684173
    }
  ],
  "phones": [
    "+59898000001"
  ],
  "properties": [
    {
      "id": "MQNKalb7",
      "kind": "address",
      "value": {
        "city": "Montevideo",
        "country": "UY",
        "latitude": "-0.349044168e2",
        "longitude": "-0.561370421e2",
        "notes": null,
        "postal_code": "11300",
        "region": "Departamento de Montevideo",
        "street": {
          "name": "Av. Luis Alberto de Herrera",
          "number": "1248"
        },
        "subregion": "CH"
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "birthday",
      "name": null,
      "value": {
        "day": 3,
        "month": 11,
        "year": 1985
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "email",
      "name": null,
      "value": "will.e@acme.com",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "phone",
      "name": null,
      "value": "+59898000001",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "gender",
      "name": null,
      "value": "male"
    }
  ],
  "state": "subscribed",
  "verified_emails": [
    "will.e@acme.com"
  ],
  "verified_phones": [
    "+59898000001"
  ]
}

Desuscribir un perfil

Cancela la suscripción de un perfil para recibir futuras comunicaciones promocionales de tu marca.

curl -X POST https://api.hellotext.com/v1/profiles/MzYwlE50/unsubscribe 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "profile",
  "blocked": false,
  "created_at": 1665684173,
  "emails": [
    "will.e@acme.com"
  ],
  "first_name": "Will E",
  "last_name": "Coyote",
  "lists": [
    {
      "id": "zN4Xx4Km",
      "type": "list",
      "name": "Greens",
      "created_at": 1665684173
    }
  ],
  "phones": [
    "+59898000001"
  ],
  "properties": [
    {
      "id": "MQNKalb7",
      "kind": "address",
      "value": {
        "city": "Montevideo",
        "country": "UY",
        "latitude": "-0.349044168e2",
        "longitude": "-0.561370421e2",
        "notes": null,
        "postal_code": "11300",
        "region": "Departamento de Montevideo",
        "street": {
          "name": "Av. Luis Alberto de Herrera",
          "number": "1248"
        },
        "subregion": "CH"
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "birthday",
      "name": null,
      "value": {
        "day": 3,
        "month": 11,
        "year": 1985
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "email",
      "name": null,
      "value": "will.e@acme.com",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "phone",
      "name": null,
      "value": "+59898000001",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "gender",
      "name": null,
      "value": "male"
    }
  ],
  "state": "unsubscribed",
  "verified_emails": [
    "will.e@acme.com"
  ],
  "verified_phones": [
    "+59898000001"
  ]
}

Verificar la información de contacto de un perfil

Verifica la información de contacto de un perfil para asegurar que la información haya sido verificada y evitar suplantaciones.

curl -X POST https://api.hellotext.com/v1/profiles/MzYwlE50/verify 
 -d phone="+598000000" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "verified": true
}
curl -X POST https://api.hellotext.com/v1/profiles/MzYwlE50/verify 
 -d email="will.e@acme.com" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "verified": true
}

Desverificar la información de contacto de un perfil

curl -X DELETE https://api.hellotext.com/v1/profiles/MzYwlE50/verify 
 -d phone="+598000000" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "verified": false
}
curl -X DELETE https://api.hellotext.com/v1/profiles/MzYwlE50/verify 
 -d email="will.e@acme.com" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "verified": false
}

Propiedades

Las propiedades son los atributos de perfiles como teléfono, correo electrónico, empresa, género, fecha de nacimiento y dirección.

Puedes crear propiedades personalizadas para cualquier necesidad específica simplemente eligiendo su tipo y un nombre opcional. Cada tipo de propiedad espera su valor con una estructura específico. Para más información, revisa detallado de cada formato a continuación.

Una vez que creadas, las nuevas propiedades están disponibles de inmediato en todos los perfiles nuevos y existentes.

phone, email, mercadolibre propiedades están agrupadas juntas y mostradas antes de todas las propeidades otras, en el orden mencionado. Por lo tanto, su posición refleja solo el orden dentro de su propia especie.

  • POST

    v1/properties

  • GET

    v1/properties/:id

  • PATCH

    v1/properties/:id

  • DELETE

    v1/properties/:id

  • GET

    v1/properties

El objeto de propiedad

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre property.
Epoch
Fecha de creación del objeto.
String
Nombre opcional de la propiedad.
integer
Posición numérica de la propiedad en relación a otras para establecer el orden.
profile
Id del perfil al que pertenece esta propiedad.
Boolean
¿Es la propiedad única o no? Por defecto es false. La singularidad de la propiedad determina si varios perfiles pueden tener el mismo valor. Las propiedades únicas aseguran que no haya dos perfiles con el mismo valor. Esto es útil en casos en los que deseas que un solo perfil tenga un valor específico en un momento determinado.
Aparte de los tipos mencionados a continuación, todos los demás tipos pueden configurarse como únicos, las actualizaciones a estas propiedades que apuntan al atributo unique son ignoradas.
No se puede configurar como único.
birthday
checkbox
date
gender
list
tags
{
  "id": "OBYBnY69",
  "type": "property",
  "created_at": 1665684173,
  "kind": "text",
  "name": "My Property",
  "position": 8,
  "profile": null,
  "unique": false
}

Clases de propiedades

Las propiedades tienen diferentes formatos para sus valores dependiendo de su clase, expresado con el atributo kind.

Cada tipo de kind espera un formato específico como su valor. Consulte la descripción de cada uno a continuación.

Los valores de las propiedades siempre se establecen desde el objeto de perfil.

La propiedad address

Representa una dirección asociada a un perfil. Puede ayudar a realizar un seguimiento de las direcciones de los clientes. El uso de esta propiedad facilita la segmentación de clientes en regiones, calles o países específicos.

Atributos
id
String
Identificador del objeto propiedad.
String
El formato de la propiedad, siempre es address.
hash
Un objeto que contiene la información de la dirección. Mostrar atributos
{
  "id": "MQNKalb7",
  "kind": "address",
  "value": {
    "city": "Montevideo",
    "country": "UY",
    "latitude": "-0.349044168e2",
    "longitude": "-0.561370421e2",
    "notes": null,
    "postal_code": "11300",
    "region": "Departamento de Montevideo",
    "street": {
      "name": "Av. Luis Alberto de Herrera",
      "number": "1248"
    },
    "subregion": "CH"
  }
}

La propiedad birthday

La propiedad birthday se basa en la propiedad date y hereda su estructura. Tiene un nombre diferente ya que esta ideada específicamente para realizar un seguimiento de la fecha de cumpleaños del perfil. El uso de esta propiedad facilita la segmentación de clientes por edad o día del mes cuando se utilizan Segmentos o Trayectos.

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto es siempre birthday.
hash
Este hash representa una fecha. Es posible completar parcialmente con la información disponible. Por ejemplo, solo se puede ingresar el año de nacimiento o el día y el mes. Mostrar atributos
{
  "id": "MQNKalb7",
  "kind": "birthday",
  "name": null,
  "value": {
    "day": 3,
    "month": 11,
    "year": 1985
  }
}

La propiedad checkbox

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, siempre es checkbox.
Boolean
Espera true o false. Por defecto es false.
{
  "id": "MQNKalb7",
  "kind": "checkbox",
  "name": null,
  "value": false
}

La propiedad company

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es company.
String
Representa el nombre de una empresa. Puede ser utilizado para almacenar el nombre de la empresa con la que está asociado el perfil.
{
  "id": "MQNKalb7",
  "kind": "company",
  "name": null,
  "value": "ACME Corporation"
}

La propiedad date

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto es siempre date.
hash
Este hash representa una fecha. Es posible completar parcialmente con la información disponible. Por ejemplo, solo se puede ingresar el año de nacimiento o el día y el mes. Mostrar atributos
{
  "id": "MQNKalb7",
  "kind": "date",
  "name": null,
  "value": {
    "day": 3,
    "month": 11,
    "year": 1985
  }
}

La propiedad email

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es email.
String
Representa una dirección de correo electrónico. Puede ser utilizado para almacenar la dirección de correo electrónico del perfil.
{
  "id": "MQNKalb7",
  "kind": "email",
  "name": null,
  "value": "will.e@acme.com",
  "verified": true
}

La propiedad gender

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es gender.
String
Valor que representa el género del perfil. Utilice masculino para hombre y femenino para mujer. Utilice cualquier otro valor para representar otros géneros.
{
  "id": "MQNKalb7",
  "kind": "gender",
  "name": null,
  "value": "male"
}

La propiedad mercadolibre

Atributos
id
String
Identificador único del objeto.
String
The format of the property, this is always mercadolibre.
String
Represents the username of a MercadoLibre user.
{
  "id": "MQNKalb7",
  "kind": "mercadolibre",
  "name": null,
  "value": "WILLE900001"
}

La propiedad number

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es number.
float
Representa un número. Puede ser utilizado para almacenar cualquier valor numérico.
{
  "id": "MQNKalb7",
  "kind": "number",
  "name": null,
  "value": 29.99
}

La propiedad phone

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es phone.
String
Representa un número de teléfono. Puede ser utilizado para almacenar el número de teléfono del perfil.
{
  "id": "MQNKalb7",
  "kind": "phone",
  "name": null,
  "value": "+59898000001",
  "verified": true
}

La propiedad tags

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad. Siempre es tags.
array
Representa una colección de etiquetas.
{
  "id": "MQNKalb7",
  "kind": "tags",
  "name": null,
  "value": [
    "tag1",
    "tag2"
  ]
}

La propiedad text

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es text.
String
Representa cualquier texto especificado. Puede ser utilizado para notas sobre el perfil o para almacenar cualquier metadato específico del negocio
{
  "id": "MQNKalb7",
  "kind": "text",
  "name": null,
  "value": "Long lasting customer"
}

La propiedad url

Atributos
id
String
Identificador único del objeto.
String
El formato de la propiedad, esto siempre es url.
String
Representa una URL. Puede ser utilizado para almacenar un enlace a un sitio web o cualquier otro recurso web.
{
  "id": "MQNKalb7",
  "kind": "url",
  "name": null,
  "value": "https://www.hellotext.com"
}

Crear una propiedad

Crea una nueva propiedad.

Parámetros
Enum
Requerido
El formato de la propiedad.
Valores enum posibles
address
email
phone
checkbox
date
number
tags
text
url
String
El nombre de la propiedad. Se aplican ciertas restricciones al nombre de la propiedad cuando se establece:
  • - El nombre no puede estar duplicado.
  • - El nombre no puede comenzar con un número. Por ejemplo, 1er-nombre es inválido.
  • - El nombre no puede contener llaves. Por ejemplo, {nombre} es inválido.
integer
Las nuevas propiedades obtienen el último número de posición si no se especifica. Si se da una posición diferente, las propiedades existentes actualizarán sus posiciones para establecer el nuevo orden. Los valores aceptados deben ser mayores que cero.
profile
Id del perfil al que pertenece esta propiedad. Si se especifica, la propiedad solo estará disponible para el perfil especificado y no será visible para otros. Solo se puede asignar a address, email o phone. Requerido al crear propiedades de tipo address, email o phone.
Boolean
¿Es la propiedad única o no? Por defecto es false. La singularidad de la propiedad determina si varios perfiles pueden tener el mismo valor. Las propiedades únicas aseguran que no haya dos perfiles con el mismo valor. Esto es útil en casos en los que deseas que un solo perfil tenga un valor específico en un momento determinado.
curl -X POST https://api.hellotext.com/v1/properties 
 -d profile="OBYBnY69" 
 -d kind="text" 
 -d name="My Property" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "OBYBnY69",
  "type": "property",
  "created_at": 1665684173,
  "kind": "text",
  "name": "My Property",
  "position": 8,
  "profile": "OBYBnY69",
  "unique": false
}

Obtener una propiedad

Obtener una propiedad existente.

curl -G https://api.hellotext.com/v1/properties/OBYBnY69 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Modificar una propiedad

Modifica la propiedad especificada con la información proporcionada.

Parámetros
String
El nombre de la propiedad. Se aplican ciertas restricciones al nombre de la propiedad cuando se establece:
  • - El nombre no puede estar duplicado.
  • - El nombre no puede comenzar con un número. Por ejemplo, 1er-nombre es inválido.
  • - El nombre no puede contener llaves. Por ejemplo, {nombre} es inválido.
integer
Las nuevas propiedades obtienen el último número de posición si no se especifica. Si se da una posición diferente, las propiedades existentes actualizarán sus posiciones para establecer el nuevo orden. Los valores aceptados deben ser mayores que cero. Proporcionar un valor vacío position='' mueve la propiedad al final de la lista de propiedades.
Boolean
Cambia la singularidad de la propiedad. Convertir una propiedad no única en única fallará si varios perfiles tienen el mismo valor. En estos casos, debes resolver el conflicto antes de continuar para hacer que la propiedad sea única.
curl -X PATCH https://api.hellotext.com/v1/properties/:id 
 -d name="My Renamed Property" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "OBYBnY69",
  "type": "property",
  "created_at": 1665684173,
  "kind": "text",
  "name": "My Renamed Property",
  "position": 8,
  "profile": null,
  "unique": false
}

Eliminar una propiedad

Elimina permanentemente la propiedad especificada.

curl -X DELETE https://api.hellotext.com/v1/properties/OBYBnY69 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "OBYBnY69",
  "type": "property",
  "deleted": true
}

Listar todas las propiedades

Enumera las propiedades existentes ordenadas por las más recientes. Los parámetros de paginación están disponibles en listas.

Parámetros
String
Mostrar resultados listados antes (más recientes) que el id dado.
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
profile
Identificador único del perfil.
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/properties 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "properties": [
    {
      "id": "OBYBnY69",
      "type": "property",
      "created_at": 1665684173,
      "kind": "text",
      "name": "My Property",
      "position": 8,
      "profile": null,
      "unique": false
    },
    "{...}",
    "{...}"
  ]
}

Listas

Las listas actúan como agrupación lógica de perfiles.

  • POST

    v1/lists

  • GET

    v1/lists/:id

  • PATCH

    v1/lists/:id

  • DELETE

    v1/lists/:id

  • GET

    v1/lists

El objecto de la lista

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre list.
Epoch
Fecha de creación del objeto.
String
Nombre de la lista.
{
  "id": "zN4Xx4Km",
  "type": "list",
  "name": "Greens",
  "created_at": 1665684173
}

Crear una lista

Crea una nueva lista

Parámetros
String
Requerido
Nombre de la lista, distingue mayúsculas y minúsculas. No se permiten nombres duplicados.
curl -X POST https://api.hellotext.com/v1/lists 
 -d name="Beauty & Care" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "zN4Xx4Km",
  "type": "list",
  "name": "Beauty & Care",
  "created_at": 1665684173
}

Obtener una lista

Recupera una lista existente. Puedes especificar la lista a través de sus atributos id o name.

curl -G https://api.hellotext.com/v1/lists/zN4Xx4Km 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Modificar una lista

Actualiza una lista existente. Puedes actualizar una lista a través de sus atributos id o name.

Parámetros
String
Requerido
Nombre de la lista, distingue mayúsculas y minúsculas. No se permiten nombres duplicados.
curl -X PATCH https://api.hellotext.com/v1/lists/zN4Xx4Km 
 -d name="Loyal customers" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "zN4Xx4Km",
  "type": "list",
  "name": "Loyal customers",
  "created_at": 1665684173
}

Eliminar una lista

Elimina una lista existente. Puedes eliminar una lista a través de sus atributos id o name.

curl -X DELETE https://api.hellotext.com/v1/lists/zN4Xx4Km 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "zN4Xx4Km",
  "type": "list",
  "deleted": true
}

Listar todas las listas

Enumera las listas existentes ordenados por los más recientes. Los parámetros de paginación están disponibles en listas.

Parámetros
String
Mostrar resultados listados antes (más recientes) que el id dado.
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
String
Mostrar listas cuyo nombre empiece con el valor proporcionado
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/lists 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "lists": [
    {
      "id": "zN4Xx4Km",
      "type": "list",
      "name": "Greens",
      "created_at": 1665684173
    },
    "{...}",
    "{...}"
  ]
}

Agregar perfil a la lista

Agrega un perfil a una lista si el perfil no está ya en la lista. Puedes especificar la lista a través de sus atributos id o name.

curl -X POST https://api.hellotext.com/v1/lists/dWJ8VYmz/profiles/MzYwlE50 \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "profile",
  "blocked": false,
  "created_at": 1665684173,
  "emails": [
    "will.e@acme.com"
  ],
  "first_name": "Will E",
  "last_name": "Coyote",
  "lists": [
    {
      "id": "zN4Xx4Km",
      "type": "list",
      "name": "Greens",
      "created_at": 1665684173
    }
  ],
  "phones": [
    "+59898000001"
  ],
  "properties": [
    {
      "id": "MQNKalb7",
      "kind": "address",
      "value": {
        "city": "Montevideo",
        "country": "UY",
        "latitude": "-0.349044168e2",
        "longitude": "-0.561370421e2",
        "notes": null,
        "postal_code": "11300",
        "region": "Departamento de Montevideo",
        "street": {
          "name": "Av. Luis Alberto de Herrera",
          "number": "1248"
        },
        "subregion": "CH"
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "birthday",
      "name": null,
      "value": {
        "day": 3,
        "month": 11,
        "year": 1985
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "email",
      "name": null,
      "value": "will.e@acme.com",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "phone",
      "name": null,
      "value": "+59898000001",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "gender",
      "name": null,
      "value": "male"
    }
  ],
  "state": "subscribed",
  "verified_emails": [
    "will.e@acme.com"
  ],
  "verified_phones": [
    "+59898000001"
  ]
}

Eliminar perfil de la lista

Elimina un perfil de una lista si el perfil es miembro de la lista. Puedes especificar la lista a través de sus atributos id o name.

curl -X DELETE https://api.hellotext.com/v1/lists/dWJ8VYmz/profiles/MzYwlE50 \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "profile",
  "blocked": false,
  "created_at": 1665684173,
  "emails": [
    "will.e@acme.com"
  ],
  "first_name": "Will E",
  "last_name": "Coyote",
  "lists": [

  ],
  "phones": [
    "+59898000001"
  ],
  "properties": [
    {
      "id": "MQNKalb7",
      "kind": "address",
      "value": {
        "city": "Montevideo",
        "country": "UY",
        "latitude": "-0.349044168e2",
        "longitude": "-0.561370421e2",
        "notes": null,
        "postal_code": "11300",
        "region": "Departamento de Montevideo",
        "street": {
          "name": "Av. Luis Alberto de Herrera",
          "number": "1248"
        },
        "subregion": "CH"
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "birthday",
      "name": null,
      "value": {
        "day": 3,
        "month": 11,
        "year": 1985
      }
    },
    {
      "id": "MQNKalb7",
      "kind": "email",
      "name": null,
      "value": "will.e@acme.com",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "phone",
      "name": null,
      "value": "+59898000001",
      "verified": true
    },
    {
      "id": "MQNKalb7",
      "kind": "gender",
      "name": null,
      "value": "male"
    }
  ],
  "state": "subscribed",
  "verified_emails": [
    "will.e@acme.com"
  ],
  "verified_phones": [
    "+59898000001"
  ]
}

El objeto de plantilla

El objeto de plantilla representa un mensaje reutilizable que se puede reutilizar rápidamente en la Composición.

Con las plantillas, creas tu mensaje una vez y lo reutilizas tantas veces como quieras. No necesitas reescribir el mismo mensaje múltiples veces.

Puedes crear una plantilla para un mensaje que envías con frecuencia, como un boletín semanal, un informe mensual o un recordatorio.

Las plantillas están compuestas por componentes, que representan diferentes partes del mensaje. Algunas tecnologías admiten componentes de plantilla como WhatsApp, otras como SMS no lo hacen. Si una plantilla se envía por SMS, incluso si contiene otros componentes, solo se utiliza el componente body.

Las plantillas están compuestas por cuatro componentes principales que defines al crear una plantilla: header, body, footer, y buttons. Los componentes que eliges para cada una de tus plantillas deben basarse en las necesidades de tu negocio. El único componente requerido es el componente del cuerpo.

El componente opcional header admite tres tipos, address, attachment y text. Los encabezados de las direcciones se muestran como una vista previa del mapa que abre la aplicación de mapas predeterminada del cliente en su dispositivo. Los encabezados de los archivos adjuntos se muestran como una vista previa del archivo adjunto. Los encabezados de texto se muestran en WhatsApp como encabezado encima del mensaje y están limitados a 60 caracteres.

El componente requerido body es el contenido real del mensaje. Esta es la parte principal del mensaje que deseas enviar. Admite parámetros, que son marcadores de posición que puedes usar para personalizar el mensaje para cada destinatario.

El componente opcional footer se muestra en la parte inferior del mensaje. Se puede usar para proporcionar información adicional o un llamado a la acción. Recomendamos usar el componente pie de página para proporcionar una forma para que el destinatario opte por no recibir mensajes. Como “Envía STOP para cancelar la suscripción”. El pie de página está limitado a 160 caracteres.

El componente opcional buttons se muestra en la parte inferior del mensaje. Se puede usar para proporcionar una forma para que el destinatario interactúe con el mensaje. Las plantillas admiten hasta 10 botones en total. Cada tipo también tiene un cierto límite; lee más abajo para obtener más información.

  • POST

    v1/templates

  • GET

    v1/templates/:id

  • PATCH

    v1/templates/:id

  • DELETE

    v1/templates/:id

  • GET

    v1/templates

El objeto de plantilla

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre template.
String
El cuerpo de la plantilla.
array
Los botones asociados con la plantilla. Se ordenan según el índice o el parámetro position que especificaste al crear o actualizar la plantilla. Mostrar atributos
Epoch
Fecha de creación del objeto.
String
El pie de la plantilla.
hash
El componente de encabezado de la plantilla. Mostrar atributos
String
El nombre de la plantilla.
Enum
El estado de la plantilla.
Valores enum posibles
approved

La plantilla está aprobada y se puede usar para enviar mensajes. Las plantillas dirigidas a sms o any (cuando el negocio no ha integrado una cuenta de WhatsApp) se configuran automáticamente en estado approved.

pending

La plantilla está pendiente de aprobación. Las plantillas dirigidas a whatsapp o any (cuando el negocio ha integrado una cuenta de WhatsApp) se configuran automáticamente en estado pending. Una vez que la plantilla de WhatsApp es aprobada, se establece en estado approved.

rejected

La plantilla ha sido rechazada y no se puede usar para enviar mensajes. Actualiza la plantilla para volver a enviarla para aprobación.

Enum
La plataforma objetivo para la cual se ha diseñado la plantilla.
Valores enum posibles
any Defecto

Un alias para todas las plataformas conectadas en el momento de la creación de la plantilla, como SMS, WhatsApp, Instagram, etc. Si en el momento de la creación de la plantilla el negocio no ha integrado WhatsApp, y lo integra en una fecha posterior, se crea automáticamente una plantilla de WhatsApp.

sms

Esta plantilla está destinada a mensajes SMS. La plantilla no se puede usar en WhatsApp.

whatsapp

Esta plantilla está destinada a mensajes de WhatsApp. La plantilla no se puede usar en SMS.

{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello, how can I help you today?",
  "buttons": [
    {
      "type": "copy",
      "copy": "123456",
      "text": "Copy text"
    },
    {
      "type": "url",
      "text": "Visit our website",
      "url": "https://example.com"
    },
    {
      "type": "phone",
      "phone": "+1234567890",
      "text": "Call us"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    }
  ],
  "created_at": 1665684173,
  "footer": "Send STOP to unsubscribe",
  "state": "approved",
  "header": {
    "type": "text",
    "text": "Welcome to our store"
  }
}

Tipos de Encabezado

El componente de encabezado es opcional y admite tres tipos, address, attachment y text. Los encabezados de texto se muestran en WhatsApp como un encabezado sobre el mensaje y están limitados a 60 caracteres. Los encabezados adjuntos se muestran como una vista previa del archivo adjunto.

El tipo de encabezado address se utiliza para mostrar un mapa en el que se puede hacer clic y que abre la aplicación de mapas predeterminada del cliente. Esto es útil para proporcionar al destinatario una ubicación o indicaciones para llegar a una ubicación, como una tienda u oficina.

El tipo de encabezado text se utiliza para mostrar un encabezado de texto sobre el mensaje. El encabezado de texto está limitado a 60 caracteres.

El tipo de encabezado attachment se utiliza para mostrar una vista previa de un archivo adjunto. El archivo adjunto se descarga y se almacena en los servidores de Hellotext. La vista previa del archivo adjunto no se muestra en los mensajes SMS.

Notas sobre adjuntos

  • Cada plataforma tiene diferentes limitaciones en el tamaño y tipo de adjuntos que se pueden enviar. A continuación se muestra una lista de los tipos de archivo compatibles y el tamaño máximo de archivo para cada plataforma.
  • Si bien Hellotext convierte automáticamente el archivo adjunto a un formato compatible con la plataforma, es mejor que el archivo adjunto esté en los formatos admitidos para evitar la pérdida de datos durante la conversión. Asegúrese de que el tamaño del archivo esté dentro de las limitaciones de la plataforma resaltadas a continuación.
Limitaciones de Adjuntos en WhatsApp
Tipo de Medio Formatos Compatibles Tamaño Máximo

Imagen

jpeg, png

5MB

Video

3gp, mp4

25MB

Documento

pdf, doc, docx, ppt, pptx, xls, xlsx

100MB

Limitaciones de Adjuntos en Instagram
Tipo de Medio Formatos Compatibles Tamaño Máximo

Imagen

png, jpeg, gif

8MB

Video

mp4, ogg, avi, mov, webm

25MB

{
  "type": "address",
  "address": {
    "city": "Montevideo",
    "country": "UY",
    "latitude": "-0.349044168e2",
    "longitude": "-0.561370421e2",
    "notes": null,
    "postal_code": "11300",
    "region": "Departamento de Montevideo",
    "street": {
      "name": "Av. Luis Alberto de Herrera",
      "number": "1248"
    },
    "subregion": "CH"
  }
}
{
  "type": "text",
  "text": "Welcome to our store"
}
{
  "type": "attachment",
  "attachment_url": "https://www.hellotext.com/my-amazing-image.jpg"
}

Cuerpo de la Plantilla

El componente cuerpo es el único componente requerido de una plantilla. Esta es la parte principal del mensaje que deseas enviar. Admite parámetros, que son marcadores de posición que puedes usar para personalizar el mensaje para cada destinatario.

Los parámetros son etiquetas dinámicas que puedes usar para personalizar el mensaje para cada destinatario. Cuando envías un mensaje de plantilla, puedes reemplazar los parámetros con los valores reales.

Hay dos categorías de parámetros que puedes usar en una plantilla, estas son tags y shortlinks.

Los parámetros están incrustados en el cuerpo de la plantilla, están encerrados dentro de llaves angulares {}. Cuando envías un mensaje de plantilla, puedes reemplazar los parámetros con los valores reales.

Etiquetas Propiedades

Las etiquetas propiedades se utilizan para personalizar el mensaje con la información del destinatario. Por ejemplo, puedes usar el nombre, dirección de correo electrónico o número telefónico del destinatario. Además, puedes usar cualquier propiedad personalizada que hayas definido.

Consulta las Propiedades para obtener más información sobre cómo crear una propiedad. También puedes crear propiedades en el panel.

Aprende más sobre etiquetas y cómo funcionan, así como las reglas aplicadas a ellas.

Propiedades

{name}

Dirige al primer nombre del perfil.

{full_name}

Dirige al nombre completo del perfil.

{last_name}

Dirige al apellido del perfil.

{birthday}

Dirige al cumpleaños del perfil.

{email}

Dirige al correo electrónico predeterminado del perfil.

{phone}

Dirige al número telefónico predeterminado del perfil.

{address}

Dirige a la dirección predeterminada del perfil.

{company}

Dirige a la propiedad empresarial del perfil.

Además de las etiquetas anteriores, puedes dirigir cualquier propiedad personalizada que hayas definido.

Las reglas son simples; escribes el nombre de la propiedad dentro de llaves angulares < code>{}. Aunque no distingue mayúsculas y minúsculas, se recomienda utilizar las mismas mayúsculas que el nombre de la propiedad.

{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, thank you for contacting us. Our team will get back to you shortly."
}
{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, since {birthday} is your birthday, we have a special gift for you. Click the link to claim it."
}
{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, we have sent further details to {email}."
}
{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, with passport number {passport}, your ticket is confirmed. Have a safe trip."
}

Etiquetas Shortlink

ShortLinks es un servicio acortador de enlaces operado por Hellotext que te permite acortar URLs y redirigirlas a una URL específica.

Las redirecciones ShortLink adjuntan un identificador hello_session a la URL, luego puedes aprovechar Hellotext.js para rastrear eventos e interacciones del usuario con ShortLink hacia Hellotext. Estos eventos aparecen en la Actividad Trail de ese perfil.

Usar ShortLinks en plantillas es sencillo; las mismas reglas aplican como con las etiquetas propiedades. Hay dos categorías de ShortLinks, dinámicos y estáticos.

ShortLinks Estáticos

Los ShortLinks estáticos son enlaces cortos que son los mismos para todos los destinatarios. Esto es útil si deseas rastrear cuántos clics hay en una URL específica.

El formato es {shortlink:url}, donde url es la URL que deseas acortar. Por ejemplo, {shortlink:https://hellotext.com} genera un ShortLink que redirige a https://hellotext.com, adjuntando un identificador hello_session.

ShortLinks Dinámicos

Los ShortLinks dinámicos son enlaces cortos personalizados para cada destinatario. Esto es útil si cada mensaje que envías a un cliente tiene una URL única específica para ese cliente.

El formato es {shortlink:name}, donde name es el nombre variable que deseas utilizar.

Por ejemplo, si deseas enviar un mensaje a un cliente con una URL única a su página cuenta, puedes usar {shortlink:cantidad} como ShortLink. Cuando envías el mensaje, reemplazas el ShortLink con la URL real.

{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, celebrate the holidays season with our special limited time offers. Click {shortlink:https://shop.com/holidays} to view the collection."
}
{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, this is a remainder that your appointment is scheduled for {date}. Click {shortlink:appointment} to view the details, or you can reschedule by clicking {shortlink:reschedule}."
}

Tipos de Botones

Los botones son componentes interactivos opcionales que realizan acciones específicas cuando se tocan. Las plantillas pueden tener una mezcla total de hasta 10 componentes botón, aunque hay límites para botones individuales del mismo tipo así como límites combinados. Estos límites están descritos abajo.

Los botones pueden incluir un argumento posición entre 0 y 9 para indicar el orden del botón; se selecciona automáticamente una posición basada en el índice del botón al crear o actualizar botones plantillas.

Botones URL

Los botones URL cargan la URL especificada en el navegador web predeterminado del dispositivo cuando son tocados por el usuario de la aplicación.

Hellotext acorta los botones de URL que habilitan el seguimiento de atribuciones para saber exactamente quién y cuántas veces se hizo clic en un botón de URL.

Las plantillas están limitadas a 2 botones URL.

Atributos
Type
Tipo de objeto. Esto es siempre url.
String
El texto a mostrar en el botón. Máximo 25 caracteres.
url
URL
La URL a cargar cuando se toca el botón.
{
  "type": "url",
  "text": "Visit our website",
  "url": "https://example.com"
}

Botones Teléfono

Los botones número telefónico llaman al número telefónico comercial especificado cuando son tocados por el usuario de la aplicación.

Las plantillas están limitadas a uno botón número telefónico.

Atributos
Type
Tipo de objeto. Esto es siempre phone.
String
El número de teléfono a llamar cuando se toca el botón. Máximo 20 caracteres.
String
El texto a mostrar en el botón. Máximo 25 caracteres.
{
  "type": "phone",
  "phone": "+1234567890",
  "text": "Call us"
}

Botones Respuesta Rápida

Los botones respuesta rápida son botones personalizados solo texto que te envían inmediatamente un mensaje con la cadena especificada cuando son tocados por el usuario de la aplicación. Un caso común es un botón que permite a tu cliente optar fácilmente por no recibir mensajes publicitarios.

Las plantillas están limitadas a diez botones respuesta rápida.

Atributos
Type
Tipo de objeto. Esto es siempre quick_reply.
String
El texto a mostrar en el botón. Máximo 25 caracteres.
{
  "type": "quick_reply",
  "text": "Button text"
}

Botones Copiar

Los botones copiar código copian una cadena textual (definida cuando se envía la plantilla en un mensaje) al portapapeles del dispositivo cuando son tocados por el usuario de la aplicación.

Las plantillas están limitadas a uno botón copiar código.

Atributos
Type
Tipo de objeto. Esto es siempre copy.
String
El texto a copiar al portapapeles cuando se toca el botón. Requerido cuando el tipo es copy. Máximo 15 caracteres.
String
El texto a mostrar en el botón. Máximo 25 caracteres.
{
  "type": "copy",
  "copy": "123456",
  "text": "Copy text"
}

Crear una Plantilla

Crea un nuevo objeto de plantilla.

Notas

  • Las plantillas de WhatsApp están limitadas a 1024 caracteres. Las plantillas de WhatsApp solo se pueden crear cuando la empresa tiene una cuenta de WhatsApp Business integrada que no ha sido deshabilitada, restringida o prohibida.
  • Las plantillas de SMS están limitadas a 160 caracteres.
  • La plantilla de SMS no admite los componentes header, footer o buttons. Al intentar asignar estos componentes se devuelve un error invalid.
Parámetros
String
Requerido
El cuerpo de la plantilla. La longitud máxima es 1024 caracteres.
array
Los botones asociados a la plantilla. Máximo 10 botones en total. Consulte los tipos de botones para obtener más información.

Se selecciona una posición automática en función del índice del botón cuando no se especifica ninguna position. Puede incluir un argumento opcional position entre 1 y 10 para indicar el orden del botón. Mostrar atributos
String
El pie de la plantilla.
hash
El componente de encabezado de la plantilla. Mostrar atributos
String
Requerido
El nombre de la plantilla. Sensible a mayúsculas, no se permiten nombres duplicados.
Enum
La plataforma de destino prevista para la plantilla. WhatsApp solo se puede configurar cuando la empresa ha integrado una cuenta de WhatsApp. Si intentas crear una plantilla de WhatsApp sin haber integrado WhatsApp, se devolverá un error.

any - es un alias para todas las plataformas conectadas, SMS, WhatsApp, Instagram, etc. Cuando la empresa ha integrado una cuenta de WhatsApp, any creará la plantilla para dirigirse tanto a WhatsApp como a SMS.

sms - Esta plantilla está destinada a mensajes SMS. La plantilla no se puede usar en WhatsApp.

whatsapp - Esta plantilla está destinada a mensajes de WhatsApp. La plantilla no se puede usar en SMS. Las plantillas que tienen como objetivo WhatsApp se configuran automáticamente en estado pending. Una vez que la plantilla de WhatsApp es aprobada, se establece en estado approved.
Valores enum posibles
any Defecto
sms
whatsapp
curl -X POST https://api.hellotext.com/v1/templates 
 -d body="Hello {name}, how can we assist you today?" 
 -d footer="One of our agents will be with you shortly." 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello, how can I help you today?",
  "buttons": [
    {
      "type": "copy",
      "copy": "123456",
      "text": "Copy text"
    },
    {
      "type": "url",
      "text": "Visit our website",
      "url": "https://example.com"
    },
    {
      "type": "phone",
      "phone": "+1234567890",
      "text": "Call us"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    }
  ],
  "created_at": 1665684173,
  "footer": "Send STOP to unsubscribe",
  "state": "approved",
  "header": {
    "type": "text",
    "text": "Welcome to our store"
  }
}

Recuperar una Plantilla

Recupera un objeto de plantilla.

curl -G https://api.hellotext.com/v1/templates/xJEOaPdk 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "xJEOaPdk",
  "type": "template",
  "body": "Hello, how can I help you today?",
  "buttons": [
    {
      "type": "copy",
      "copy": "123456",
      "text": "Copy text"
    },
    {
      "type": "url",
      "text": "Visit our website",
      "url": "https://example.com"
    },
    {
      "type": "phone",
      "phone": "+1234567890",
      "text": "Call us"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    }
  ],
  "created_at": 1665684173,
  "footer": "Send STOP to unsubscribe",
  "state": "approved",
  "header": {
    "type": "text",
    "text": "Welcome to our store"
  }
}

Actualizar una Plantilla

Actualiza un objeto de plantilla.

Notas sobre las Plantillas de WhatsApp

  • Las plantillas dirigidas a WhatsApp están limitadas a 1 actualización por día. Esto significa que si actualizas una plantilla de WhatsApp, no podrás actualizarla de nuevo hasta que hayan pasado 24 horas. Intentar actualizar una plantilla de WhatsApp más de una vez en un día será rechazado con un error invalid.
  • Además, una plantilla de WhatsApp solo se puede editar cuando está aprobada, rechazada o pausada. Intentar actualizar una plantilla de WhatsApp que esté en estado pending será rechazado con un error invalid.
  • Los nombres no se pueden cambiar. Si proporciona name en los parámetros, se ignora.
Parámetros
String
El cuerpo de la plantilla. La longitud máxima es 1024 caracteres.
array
Los botones asociados con la plantilla. Se selecciona una posición automática basada en el índice del botón. Puedes pasar un array vacío [] para eliminar todos los botones de la plantilla. Mostrar atributos
String
El pie de la plantilla.
hash
El componente de encabezado de la plantilla. Puedes pasar null o {} para eliminar el encabezado. Si el tipo de encabezado era un adjunto, el adjunto se elimina de los servidores de Hellotext. Mostrar atributos
String
El nombre de la plantilla. No se permiten nombres duplicados que distingan entre mayúsculas y minúsculas. Si la plantilla está dirigida a WhatsApp, las actualizaciones del nombre se ignoran. Esto se debe a que los nombres de las plantillas de WhatsApp no se pueden cambiar una vez creados.
Enum
La plataforma de destino prevista para la plantilla. Una vez cambiada, se vuelve inutilizable en la plataforma anterior. Por ejemplo, cambiar la tecnología de whatsapp a sms hará que la plantilla sea inutilizable en WhatsApp, lo que significa que no podrás enviar mensajes usando esta plantilla en WhatsApp.

WhatsApp solo puede configurarse cuando la empresa ha integrado una cuenta de WhatsApp. Si intentas crear una plantilla de WhatsApp pero no has integrado WhatsApp, se devolverá un error.
Valores enum posibles
any Defecto
sms
whatsapp
curl -X PATCH https://api.hellotext.com/v1/templates/xJEOaPdk 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "xJEOaPdk",
  "type": "template",
  "body": "Hello, how can I help you today?",
  "buttons": [
    {
      "type": "copy",
      "copy": "123456",
      "text": "Copy text"
    },
    {
      "type": "url",
      "text": "Visit our website",
      "url": "https://example.com"
    },
    {
      "type": "phone",
      "phone": "+1234567890",
      "text": "Call us"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    },
    {
      "type": "quick_reply",
      "text": "Button text"
    }
  ],
  "created_at": 1665684173,
  "footer": "Send STOP to unsubscribe",
  "state": "approved",
  "header": {
    "type": "text",
    "text": "Welcome to our store"
  }
}

Eliminar una Plantilla

Elimina un objeto de plantilla.

El objeto de plantilla se mantiene para referencia interna, ya que puede haber habido mensajes que dependían de él antes de la eliminación. Sin embargo, la plantilla se vuelve inaccesible y no se puede usar para enviar nuevos mensajes. Puedes crear una nueva plantilla con el mismo nombre.

Notas sobre las Plantillas de WhatsApp

  • Los nombres de una plantilla aprobada que se ha eliminado no se pueden volver a utilizar durante 30 días.
  • Solo puedes crear una nueva plantilla con el mismo nombre cuando la plantilla eliminada no estaba dirigida a WhatsApp.
curl -X DELETE https://api.hellotext.com/v1/templates/xJEOaPdk 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "MzYwlE50",
  "type": "template",
  "deleted": true
}

Listar todas las Plantillas

Lista todos los objetos de plantilla. Soporta paginación.

Parámetros
String
Mostrar resultados listados antes (más recientes) que el id dado.
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/templates 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "templates": [
    {
      "id": "MzYwlE50",
      "type": "template",
      "body": "Hello, how can I help you today?",
      "buttons": [
        {
          "type": "copy",
          "copy": "123456",
          "text": "Copy text"
        },
        {
          "type": "url",
          "text": "Visit our website",
          "url": "https://example.com"
        },
        {
          "type": "phone",
          "phone": "+1234567890",
          "text": "Call us"
        },
        {
          "type": "quick_reply",
          "text": "Button text"
        },
        {
          "type": "quick_reply",
          "text": "Button text"
        },
        {
          "type": "quick_reply",
          "text": "Button text"
        }
      ],
      "created_at": 1665684173,
      "footer": "Send STOP to unsubscribe",
      "state": "approved",
      "header": {
        "type": "text",
        "text": "Welcome to our store"
      }
    },
    "{...}",
    "{...}"
  ]
}

El Objeto de Mensaje

Un mensaje es una comunicación entre usted y un perfil. Puede enviar mensajes de texto o reutilizar una Plantilla existente.

  • POST

    v1/messages

  • GET

    v1/messages/:id

  • GET

    v1/messages

El Objeto de Mensaje

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre message.
array
Una lista de archivos adjuntos asociados con el mensaje.
String
The content of the message. Optional when using a template, required when no template is specified.
Epoch
Fecha de creación del objeto.
Epoch
La marca de tiempo de cuando el mensaje fue entregado.
String
El identificador del perfil que recibirá el mensaje. Puede ser un número de teléfono, nombre de usuario de Instagram o ID de usuario de MercadoLibre.
Epoch
La marca de tiempo de cuando el mensaje falló en ser entregado.
String
El identificador del canal utilizado para enviar el mensaje.
profile
El id del perfil al que se enviará el mensaje.
Epoch
La marca de tiempo de cuando el mensaje fue recibido por el perfil. Esto se puede usar para determinar si el mensaje fue del perfil o del negocio.
Epoch
La marca de tiempo de cuando el mensaje fue dirigido a la pasarela externa.
Enum
El estado actual del mensaje.
Valores enum posibles
delivered

El mensaje ha sido entregado exitosamente. Consulte delivered_at para la hora exacta.

failed

El mensaje no se pudo entregar.

pending Defecto

El mensaje se ha creado correctamente y está pendiente de entrega.

received

El mensaje fue enviado por el perfil a la empresa.

routed

El mensaje ha sido dirigido a la pasarela externa. Una vez que el proveedor informe, el mensaje será delivered o failed.

Enum
La tecnología utilizada para entregar el mensaje.
Valores enum posibles
instagram

El mensaje se entregó por Instagram.

mercadolibre

El mensaje se entregó por MercadoLibre.

sms

El mensaje se entregó por SMS.

whatsapp

El mensaje se entregó por WhatsApp.

template
El id de la plantilla utilizada para enviar el mensaje.
{
  "id": "zGrDJ1Lb",
  "type": "message",
  "attachments": [

  ],
  "body": "Hi John, how can we help you today?",
  "created_at": 1665684173,
  "delivered_at": 1665684173,
  "destination": "+1234567890",
  "failed_at": null,
  "origin": "+0987654321",
  "profile": "APwbZ6w4",
  "routed_at": 1665684173,
  "state": "delivered",
  "technology": "whatsapp",
  "template": "MzYwlE50"
}

Mensajes de Plantilla

Aprenda cómo enviar mensajes usando una plantilla. Asegúrese de haber leído sobre las Plantillas y de entender los componentes y cómo usarlos antes de enviar un mensaje.

Enlaces Cortos Dinámicos en Mensajes de Plantilla

Puede reservar un espacio para enlaces cortos dinámicos en el cuerpo de la plantilla cuando la crea. Consulte la documentación de Tipos de Enlaces Cortos para obtener más información sobre los tipos de enlaces cortos y cómo crearlos.

Las siguientes secciones asumen que ya ha creado una plantilla con enlaces cortos dinámicos y tiene un conocimiento sólido sobre cómo funcionan.

Cada enlace corto dinámico es un nombre de variable que se puede dirigir y reemplazar con una URL específica al enviar el mensaje. Considere que la plantilla que queremos usar tiene tres etiquetas. Una etiqueta de propiedad {name} que se reemplaza por el nombre de pila del perfil. Y dos enlaces cortos dinámicos, {shortlink:appointment} y {shortlink:reschedule}.

Para reemplazar los enlaces cortos al enviar el mensaje, proporcione el nombre de cada enlace corto dinámico con una URL a través de un parámetro shortlinks en el objeto de la plantilla.

Si observa los Parámetros del Mensaje que tenemos al crear el mensaje, verá que en message.template.shortlinks tenemos un hash con los nombres de los enlaces cortos y sus respectivas URL. Cada URL proporcionada se acorta y reemplaza el enlace corto dinámico en el cuerpo de la plantilla, el orden no importa ya que las secciones dinámicas se reemplazan por sus nombres respectivos.

{
  "id": "MzYwlE50",
  "type": "template",
  "body": "Hello {name}, this is a remainder that your appointment is scheduled for {date}. Click {shortlink:appointment} to view the details, or you can reschedule by clicking {shortlink:reschedule}."
}
{
  "profile": "APwbZ6w4",
  "origin": "+0987654321",
  "template": {
    "id": "MzYwlE50",
    "shortlinks": {
      "appointment": "https://example.com/appointments/1",
      "reschedule": "https://example.com/appointments/1/edit"
    }
  }
}

Enviar un Mensaje

Envía un mensaje de texto libre o un mensaje de plantilla para enviar a un perfil.

Notas

  • Los mensajes de WhatsApp están limitados a 4096 caracteres. Los mensajes de WhatsApp solo se pueden enviar cuando la empresa tiene una cuenta de WhatsApp Business integrada que no ha sido deshabilitada, restringida o prohibida.
  • Los mensajes de Instagram están limitados a 1000 caracteres. Los mensajes de Instagram solo se pueden enviar cuando la empresa tiene un perfil de Instagram integrado.
  • Los mensajes de MercadoLibre están limitados a 350 caracteres. Los mensajes de MercadoLibre solo se pueden enviar cuando la empresa tiene una tienda de MercadoLibre integrada.
  • Los mensajes de SMS están limitados a 160 caracteres.
  • Como recordatorio, asegúrate de enviar mensajes solo a usuarios que no hayan optado por dejar de recibir mensajes de ti. Consulta el subscription_state del perfil para obtener más información.
  • Cuando se usa una plantilla que utiliza Enlaces Cortos Dinámicos, es necesario proporcionar las URL de los enlaces cortos al crear el mensaje. No proporcionar una URL para un enlace corto dinámico resultará en errores.

Notas sobre Mensajes de WhatsApp

  • Solo puedes enviar un mensaje de texto libre a un perfil si el perfil tiene una ventana de conversación abierta. De lo contrario, debes usar una plantilla. Esto se llama Ventana de Atención al Cliente.
  • Cada vez que un perfil te envía un mensaje a través de WhatsApp, se inicia un temporizador de 24 horas llamado ventana de atención al cliente (o se refresca si ya se ha iniciado uno).
  • Cuando hay una ventana de atención al cliente abierta entre tú y un usuario, puedes enviar mensajes de texto libre al usuario. Si no hay una ventana abierta entre tú y el usuario, solo puedes enviar mensajes de plantilla al usuario, ya que los mensajes de plantilla son el único tipo que se puede enviar fuera de una ventana de atención al cliente.

Notas sobre adjuntos

  • Cada plataforma tiene diferentes limitaciones en el tamaño y tipo de adjuntos que se pueden enviar. A continuación se muestra una lista de los tipos de archivo compatibles y el tamaño máximo de archivo para cada plataforma.
  • Si bien Hellotext convierte automáticamente el archivo adjunto a un formato compatible con la plataforma, es mejor que el archivo adjunto esté en los formatos admitidos para evitar la pérdida de datos durante la conversión. Asegúrese de que el tamaño del archivo esté dentro de las limitaciones de la plataforma resaltadas a continuación.
Limitaciones de Adjuntos en WhatsApp
Tipo de Medio Formatos Compatibles Tamaño Máximo

Imagen

jpeg, png

5MB

Video

3gp, mp4

25MB

Documento

pdf, doc, docx, ppt, pptx, xls, xlsx

100MB

Limitaciones de Adjuntos en Instagram
Tipo de Medio Formatos Compatibles Tamaño Máximo

Imagen

png, jpeg, gif

8MB

Video

mp4, ogg, avi, mov, webm

25MB

Parámetros
array
A list of attachment URLs to send with the message. Make sure each URL is publicly accessible, the attachments are downloaded and stored on Hellotext's servers.
String
Requerido
The content of the message. Optional when using a template, required when no template is specified.
String
El identificador del destino del perfil al que enviar el mensaje. Puede ser un número de teléfono, nombre de usuario de Instagram o ID de usuario de MercadoLibre.

Hellotext selecciona automáticamente un destino basado en el origin y technology configurados. De lo contrario, puede especificar el destino para enviar el mensaje a un identificador específico del perfil.
String
El identificador del canal utilizado para enviar el mensaje. Cuando esto está vacío, Hellotext determinará el mejor canal a utilizar según la accesibilidad del perfil y los canales configurados por el negocio.

Por ejemplo, al enviar un mensaje a un perfil, si no especifica el origin, Hellotext usará un canal con el que se pueda contactar al perfil. Esto significa que, si el perfil se puede contactar a través de WhatsApp, el mensaje se envía a través de WhatsApp, y si el perfil se puede contactar a través de SMS, el mensaje se envía a través de SMS.
profile
Requerido
El id del perfil al que se enviará el mensaje.
Enum
La tecnología por la cual enrutar el mensaje. Cuando esto está vacío, Hellotext determinará la mejor tecnología a utilizar según la accesibilidad del perfil y los canales configurados por el negocio. Las tecnologías tienen el siguiente orden de prioridad: WhatsApp, Instagram y SMS.

Tenga en cuenta que integraciones como WhatsApp, Instagram o MercadoLibre requieren una integración activa conectada por el negocio. Intentar enviar un mensaje a través de una tecnología no disponible devolverá un error invalid.
Valores enum posibles
instagram
sms
whatsapp
hash
Ya sea un identificador de cadena de la plantilla que se utilizará al enviar el mensaje o un hash. Cuando se establece, el cuerpo del mensaje se ignora y en su lugar se utiliza el cuerpo de la plantilla. Las plantillas son mensajes reutilizables que se pueden utilizar para enviar mensajes a perfiles. Cuando la plantilla tiene enlaces cortos dinámicos, debes proporcionar las URL de los enlaces cortos al crear el mensaje. Si no se proporciona una URL para un enlace corto dinámico, se devolverán errores. Mostrar atributos
curl -X POST https://api.hellotext.com/v1/messages 
 -d origin="+14155552671" 
 -d profile="zGrDJ1Lb" 
 -d template="K75Vq1dL" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "zGrDJ1Lb",
  "type": "message",
  "attachments": [

  ],
  "body": "Hi John, how can we help you today?",
  "created_at": 1665684173,
  "delivered_at": null,
  "destination": "+14155552672",
  "failed_at": null,
  "origin": "+14155552671",
  "profile": "zGrDJ1Lb",
  "routed_at": null,
  "state": "pending",
  "technology": "whatsapp",
  "template": "K75Vq1dL"
}
curl -X POST https://api.hellotext.com/v1/messages 
 -d origin="+14155552671" 
 -d profile="zGrDJ1Lb" 
 -d body="To be or not to be, that is the question." 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "zGrDJ1Lb",
  "type": "message",
  "attachments": [

  ],
  "body": "To be or not to be, that is the question.",
  "created_at": 1665684173,
  "delivered_at": null,
  "destination": "+14155552672",
  "failed_at": null,
  "origin": "+14155552671",
  "profile": "zGrDJ1Lb",
  "routed_at": null,
  "state": "pending",
  "technology": "whatsapp",
  "template": null
}

Mostrar un Mensaje

Muestra un mensaje específico enviado por la empresa.

curl -G https://api.hellotext.com/v1/messages/APwbP54L 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Listar Mensajes

Lista todos los mensajes enviados por la empresa.

Parámetros
String
Mostrar resultados listados antes (más recientes) que el id dado.
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/messages 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "messages": [
    {
      "id": "zGrDJ1Lb",
      "type": "message",
      "attachments": [

      ],
      "body": "Hi John, how can we help you today?",
      "created_at": 1665684173,
      "delivered_at": 1665684173,
      "destination": "+1234567890",
      "failed_at": null,
      "origin": "+0987654321",
      "profile": "APwbZ6w4",
      "routed_at": 1665684173,
      "state": "delivered",
      "technology": "whatsapp",
      "template": "MzYwlE50"
    },
    "{...}",
    "{...}"
  ]
}

Cupones

Importa los cupones de tu eCommerce que te gustaría enviar en tus campañas promocionales. Puedes medir los resultados de los diferentes cupones.

  • POST

    v1/coupons

  • GET

    v1/coupons/:id

  • PATCH

    v1/coupons/:id

  • DELETE

    v1/coupons/:id

  • GET

    v1/coupons

El objeto del cupón

Atributos
id
String
Identificador único del objeto.
Type
Tipo de objeto. Esto es siempre coupon.
String
Código canjeable del cupón. Este es el nombre del cupón que ve el cliente, es decir, SALE.
Epoch
Fecha de creación del objeto.
String
Descripción del cupón. Disponible como una etiqueta para ser utilizada en los mensajes.
URL
URL para canjear el cupón.
String
El número de cupón o el identificador original de la fuente externa que creó el cupón.
{
  "id": "xJEOaPdk",
  "type": "coupon",
  "code": "SALE",
  "created_at": 1665684173,
  "description": "Get 15% off all our summer sale",
  "destination_url": "https://www.myshop.com/redeem/SALE",
  "reference": null
}

Crear un cupón

Crea un nuevo cupón.

Parámetros
String
Requerido
Código canjeable del cupón. Este es el nombre del cupón que ve el cliente, es decir, SALE. Distingue mayúsculas y minúsculas. No se permiten códigos duplicados.
String
Requerido
Descripción del cupón. Disponible como una etiqueta para ser utilizada en los mensajes.
URL
Requerido
URL para canjear el cupón.
String
El número de cupón o el identificador original de la fuente externa que creó el cupón.
curl -X POST https://api.hellotext.com/v1/coupons 
 -d code="SALE" 
 -d description="Get 15% off all our summer sale" 
 -d destination_url="https://www.myshop.com/redeem/SALE" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "xJEOaPdk",
  "type": "coupon",
  "code": "SALE",
  "created_at": 1665684173,
  "description": "Get 15% off all our summer sale",
  "destination_url": "https://www.myshop.com/redeem/SALE",
  "reference": null
}

Obtener un cupón

Obtener un cupón existente.

curl -G https://api.hellotext.com/v1/coupons/xJEOaPdk 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."

Modificar un cupón

Modifica el cupón especificado con la información proporcionada.

Parámetros
String
Requerido
Código canjeable del cupón. Este es el nombre del cupón que ve el cliente, es decir, SALE. Distingue mayúsculas y minúsculas. No se permiten códigos duplicados.
String
Requerido
Descripción del cupón. Disponible como una etiqueta para ser utilizada en los mensajes.
URL
Requerido
URL para canjear el cupón.
String
El número de cupón o el identificador original de la fuente externa que creó el cupón.
curl -X PATCH https://api.hellotext.com/v1/coupons/xJEOaPdk 
 -d code="SALE15" 
 -d description="Get 15% off all our summer sale" 
 -d destination_url="https://www.myshop.com/redeem/SALE" 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "xJEOaPdk",
  "type": "coupon",
  "code": "SALE15",
  "created_at": 1665684173,
  "description": "Get 15% off all our summer sale",
  "destination_url": "https://www.myshop.com/redeem/SALE",
  "reference": null
}

Eliminar un cupón

Elimina permanentemente el cupón especificado.

curl -X DELETE https://api.hellotext.com/v1/coupons/xJEOaPdk 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "id": "xJEOaPdk",
  "type": "coupon",
  "deleted": true
}

Listar todos los cupones

Enumera los cupones existentes ordenados por los más recientes. Los parámetros de paginación están disponibles en listas.

Parámetros
String
Mostrar resultados listados antes (más recientes) que el id dado.
integer
Limitar cuántos resultados mostrar. El valor por defecto es 25. El máximo es 100.
String
Mostrar resultados listados después (más antiguos) que el id dado.
curl -G https://api.hellotext.com/v1/coupons 
 -d limit=5 
 -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "coupons": [
    {
      "id": "xJEOaPdk",
      "type": "coupon",
      "code": "SALE",
      "created_at": 1665684173,
      "description": "Get 15% off all our summer sale",
      "destination_url": "https://www.myshop.com/redeem/SALE",
      "reference": null
    },
    "{...}",
    "{...}"
  ]
}

Seguimiento

El seguimiento de las interacciones de los clientes abre nuevas posibilidades de marketing y brinda a las empresas una vista completa del historial de cada cliente.

Mediante el seguimiento de las acciones de clientes, es posible crear audiencias segmentadas basadas en lo que hacen y les gusta, y usar esto para marketing de alta precisión. Las empresas pueden activar automatizaciones basadas en la actividad del cliente y dar a su equipo una gran ventaja encontrando nuevas oportunidades para interactuar activamente y vender más.

Una configuración mínima para realizar un seguimiento de un evento es establecer el parámetro action con cualquiera de las acciones pre-definidas o personalizadas (consulta Acciones) y el parámetro profile que representa el perfil del cliente o el session si el seguimiento de eventos se realiza a partir de enlaces cortos en campañas o rutas (ver Sesiones).

Al proporcionar los parámetros session y profile, asegúrese de que la sesión esté asignada al perfil. Las sesiones asignadas a un perfil no se pueden utilizar para realizar un seguimiento de los eventos de otro perfil. Si la sesión no está asignada a ningún perfil, se asignará automáticamente al perfil que pase al realizar el seguimiento de un evento.

Al proporcionar una currency. Se debe especificar el amount. Si no se proporciona ninguno, los valores se heredarán del trackable si el objeto tiene los atributos.

  POST /v1/attribution/events

Eventos de app

Realiza un seguimiento de los eventos importantes realizados por tus clientes cuando interactúan con tu aplicación. Las acciones más comunes incluyen cuando una aplicación se instala con la acción app.installed, se elimina con app.removed o cuando un usuario gasta una determinada cantidad con app.spent.

Al rastrear eventos asociados a sesiones creadas después de una campaña, todos los valores de atribución, incluidos los valores monetarios, se agregarán a los informes de la campaña.

Parámetros
enum
Requerido
El nombre de la acción a rastrear. Los valores posibles son app.spent, app.installed y app.removed.
Valores enum posibles
app.installed
app.removed
app.spent
float
Monto monetario que representa los ingresos asociados a este evento rastreado. El valor predeterminado es null. Obligatorio si action=app.spent.
app
string
Requerido
Identificador único del objeto de aplicación al que está asociado este evento.
hash
Se puede pasar un hash en lugar del parámetro app. El app se va agregar y despues rastreado. Mostrar atributos
currency
Moneda para el cantidad proporcionada en formato ISO 4217. El valor predeterminado siempre es USD. Obligatorio si action=app.spent.
hash
Conjunto de pares atributo-valor que puede adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado.
string
Obligatorio si no se especifica session. Identificador único del objeto de perfil al que pertenece este evento. Si no se especifica explícitamente, el identificador de perfil se puede heredar cuando se especifica el parámetro session y la sesión ya está asociada a un perfil o se adjunta posteriormente a uno.
string
Obligatorio si no se especifica profile. Identificador del objeto de sesión al que pertenece este evento. Las sesiones son identificadores generados automáticamente a partir de los clics de los visitantes en enlaces cortos o de la librería Hellotext.js al realizar seguimientos de visitantes anónimos. Es una forma de rastrear eventos en el lado del cliente sin autenticar o revelar el identificador del perfil, lo que permite asociarlo más tarde a un perfil de forma segura en el lado del servidor. Más información sobre Sesiones.
epoch
Fecha original en que ocurrió el evento. Esto es útil si desea registrar un evento que sucedió en el pasado. Si no se proporciona ningún valor, su valor será el mismo de created_at.
url
url
El URL de la pagína este evento se occuro.
curl https://api.hellotext.com/v1/attribution/events \
  -d action="app.installed" \
  -d app=xnqJQ47v \
  -d session=2KAGgAgm \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "status": "received"
}

Eventos de carrito

Realiza un seguimiento de los eventos realizados por los clientes cuando agregan o eliminan elementos de su carrito de compras. O abandonan el carrito

Los valores monetarios asociados a los elementos del carrito se agregarán a los informes de la campaña.

Parámetros
enum
Requerido
Un hash que representa el objeto de acción.
Valores enum posibles
cart.abandoned
cart.added
cart.removed
float
Monto monetario que representa los ingresos asociados a este evento. El valor predeterminado es null.
string
El identificador del objeto Cart. Requerido cuando la acción es cart.abandoned.
currency
Moneda para el cantidad proporcionada en formato ISO 4217. El valor predeterminado siempre es USD.
hash
Conjunto de pares atributo-valor que puede adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado.
string
Una colección de productos incluidos en el carrito. Puede ser una combinación de identificadores de productos o variantes de productos (id, reference o sku) y product_parameters y product_variant_parameters. Requerido cuando la acción es cart.added o cart.removed.

Cuando no se proporciona un objeto Carrito, se creará automáticamente un objeto Carrito y los productos se agregarán a él. Cuando se proporciona un objeto Carrito, los productos se agregarán al Carrito. Y los productos se mostrarán en la Trayectoria de Actividad del Perfil.

Asegúrate de establecer la reference o sku para el producto o la variante del producto para evitar la creación de productos duplicados.
string
Obligatorio si no se especifica session. Identificador único del objeto de perfil al que pertenece este evento. Si no se especifica explícitamente, el identificador de perfil se puede heredar cuando se especifica el parámetro session y la sesión ya está asociada a un perfil o se adjunta posteriormente a uno.
string
Obligatorio si no se especifica profile. Identificador del objeto de sesión al que pertenece este evento. Las sesiones son identificadores generados automáticamente a partir de los clics de los visitantes en enlaces cortos o de la librería Hellotext.js al realizar seguimientos de visitantes anónimos. Es una forma de rastrear eventos en el lado del cliente sin autenticar o revelar el identificador del perfil, lo que permite asociarlo más tarde a un perfil de forma segura en el lado del servidor. Más información sobre Sesiones.
epoch
Fecha original en que ocurrió el evento. Esto es útil si desea registrar un evento que sucedió en el pasado. Si no se proporciona ningún valor, su valor será el mismo de created_at.
url
url
El URL de la pagína este evento se occuro.
curl https://api.hellotext.com/v1/attribution/events \
  -d action="cart.added" \
  -d app=xnqJQ47v \
  -d session=2KAGgAgm \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "status": "received"
}

Eventos de cupones

Realiza un seguimiento de los eventos realizados por tus clientes cuando canjean cupones. El valor disponible es coupon.redeemed para los cupones canjeados.

Los valores monetarios asociados al canje de cupones se agregarán a los informes de la campaña.

Parámetros
enum
Requerido
El nombre de la acción a rastrear.
Valores enum posibles
coupon.redeemed
float
Monto monetario que representa los ingresos asociados a este evento. El valor predeterminado es null.
string
Requerido
Identificador único del objeto del cupón al que está asociado este evento.
hash
Se puede pasar un hash en lugar del parámetro coupon. El cupon se va agregar y despues rastreado. Mostrar atributos
currency
Moneda para el cantidad proporcionada en formato ISO 4217. El valor predeterminado siempre es USD.
hash
Conjunto de pares atributo-valor que puede adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado.
string
Obligatorio si no se especifica session. Identificador único del objeto de perfil al que pertenece este evento. Si no se especifica explícitamente, el identificador de perfil se puede heredar cuando se especifica el parámetro session y la sesión ya está asociada a un perfil o se adjunta posteriormente a uno.
string
Obligatorio si no se especifica profile. Identificador del objeto de sesión al que pertenece este evento. Las sesiones son identificadores generados automáticamente a partir de los clics de los visitantes en enlaces cortos o de la librería Hellotext.js al realizar seguimientos de visitantes anónimos. Es una forma de rastrear eventos en el lado del cliente sin autenticar o revelar el identificador del perfil, lo que permite asociarlo más tarde a un perfil de forma segura en el lado del servidor. Más información sobre Sesiones.
epoch
Fecha original en que ocurrió el evento. Esto es útil si desea registrar un evento que sucedió en el pasado. Si no se proporciona ningún valor, su valor será el mismo de created_at.
url
url
El URL de la pagína este evento se occuro.
curl https://api.hellotext.com/v1/attribution/events \
  -d action="coupon.redeemed" \
  -d coupon=wx4Vn4no \
  -d session=2KAGgAgm \
  -H "Authorization: Bearer ALK_eSMRuwJ2Al..."
{
  "status": "received"
}

Eventos de formularios

Realiza un seguimiento de los eventos realizados por tus clientes cuando completan un formulario. Las acciones disponibles son form.completed.

Los valores monetarios asociados a la finalización del formulario se agregarán a los informes de la campaña.

Parámetros
enum
Requerido
El nombre de la acción a rastrear.
Valores enum posibles
form.completed
float
Monto monetario que representa los ingresos asociados a este evento. El valor predeterminado es null.
currency
Moneda para el cantidad proporcionada en formato ISO 4217. El valor predeterminado siempre es USD.
string
Requerido
Identificador único del objeto de formulario al que está asociado este evento.
hash
Se puede pasar un hash en lugar del parámetro form. El formulario se va agregar y despues rastreado. Mostrar atributos