El proyecto Sms Webhook Notifier permite entregar una notificación con el estado de cada mensaje enviado a través del API transaccional o del servicio de Campañas de SMS, para los clientes que cuenten con una configuración activa para este servicio.
Para el registro de un nuevo cliente en el Sms Webhook Notifier, es necesario que el cliente cuente con un Endpoint de tipo POST sin restricción de autenticación en su API de servicios con el fin de recibir los eventos de los envíos. Se debe realizar la solicitud a Masiv informando de la necesidad y brindando la siguiente información:
En la siguiente tabla se especifican los posibles atributos que puede contener un evento notificado por medio de Sms Webhook Notifier
<aside> 💡 Aclaración: De acuerdo a la configuración del tamaño del Batch para cada cliente, Sms Webhook Notifier construirá un grupo acorde a la cantidad de eventos disponibles y pendientes por notificar y los enviará por medio una petición HTTP POST al endpoint especificado en la configuración particular de cada cliente.
</aside>
Atributo | Tipo | Descripción |
---|---|---|
CampaignName | String | Nombre de la campaña seleccionada en la plataforma para el envío (Aplica solo para envíos realizados por medio de Campañas). |
PackageId | String | Identificador del envío masivo (Aplica solo para envíos realizados por medio de Campañas). |
MessageId | String | Corresponde al Id interno del mensaje. |
Sent | String, Datetime ISO 8601 | Fecha de envío del mensaje, Formato UTC 0. |
IdOperator | String | Corresponde al Id interno del operador. |
DestAddr | String | Número celular destino del SMS. |
Status | String (EventType) | Corresponde al estado del envío del mensaje, los posibles estados se especifican en otra tabla a continuación. |
ClientId | Int | Corresponde al Id de la cuenta que realiza el envío. |
ClientName | String | Corresponde al nombre de la cuenta que realiza el envío. |
Metadata | Json Object | Información enviada por el cliente en el parámetro 'Metadata'. |
Reference | String | Corresponde al Id del mensaje entregado por el operador. |
EventTime | String, Datetime ISO 8601 | Fecha de generación del Evento, Formato UTC. |
MessageText | String | Corresponde al texto del SMS enviado. |
Guid | String | Corresponde al identificador único del mensaje (Id interno asignado por Masiv). |
Segments | String | Corresponde a la cantidad de segmentos del mensaje. |
Sender | String | Corresponde a código corto por medio del cual se realiza el envío. |
Country | String | Corresponde al código del país al que pertenece el número de teléfono al cual se realiza el envío. |
Length | Int | Corresponde a la longitud del mensaje (Cantidad de caracteres). |
Un ejemplo de una notificación se vería de la siguiente manera:
[
{
"CampaignName": "Prueba Sms",
"PackageId": "3563063",
"MessageId": "2035630631",
"Sent": "0001-01-01T00:00:00",
"IdOperator": "0",
"DestAddr": "573132579839",
"Status": "ReadyToSend",
"ClientId": 6665,
"ClientName": "Equiposms",
"Metadata": null,
"Reference": null,
"Eventtime": "2023-04-12T22:14:36.318",
"MessageText": "test campanas 05:13pm",
"Guid": "c6b447cb-f544-465d-a219-d84291dbda67",
"Segments": "1",
"Sender": "87007",
"Country": "CO",
"Length": 21
},
{
"CampaignName": "Prueba Sms 2",
"PackageId": "3563067",
"MessageId": "2035630665",
"Sent": "0001-01-01T00:00:00",
"IdOperator": "0",
"DestAddr": "573132576789",
"Status": "ReadyToSend",
"ClientId": 6665,
"ClientName": "Equiposms",
"Metadata": null,
"Reference": null,
"Eventtime": "2023-04-12T22:15:36.318",
"MessageText": "test campanas 03:36pm",
"Guid": "c6b447cb-f544-465d-a219-d84291dfed56",
"Segments": "2",
"Sender": "87007",
"Country": "CO",
"Length": 23
}
]
Los posible valores para el atributo Status se especifican en la siguiente tabla:
Estado | Descripción |
---|---|
ReadyToSend | Significa que el mensaje ha sido recibido por Masiv de forma correcta y está listo para ser enviado |
OperatorAssignment | Significa que el mensaje ha pasado por el proceso de consulta de portabilidad de forma correcta y ya se encuentra asignado al operador móvil correspondiente |
FormatError | Significa que se el mensaje no ha pasado satisfactoriamente por le proceso de validación de formato |
LengthError | Significa que el tipo de mensaje (Long, Short) no es acorde con la longitud del texto a enviar |
RepetitionError | Significa que existe un mensaje con el mismo texto y configuración para un mismo número de teléfono en la misma campaña, y además se habilitó la opción de validación de repetidos para dicha campaña |
Cancelled | Significa que el mensaje pertenece a una campaña que fue cancelada |
UndefinedRoute | Significa que no existe una ruta configurada que relacione al cliente que realiza el envío, con el operador al cual pertenece el número de teléfono destino del SMS |
TouchesRestricted | Significa que el mensaje fue restringido por haber alcanzado el límite de toques permitido (Ley 2300 de Colombia) |
ScheduleRestricted | Significa que el mensaje fue restringido por haber sido enviado dentro del horario restringido (Ley 2300 de Colombia) |
UrlShortError | Significa que se presentó un fallo durante la generación de la URL Corta para el mensaje |
Unsubscribed | Significa que el número de teléfono destino del SMS se encuentra dentro de la lista de números desuscritos para el cliente que intenta realizar el envío |
Error | Significa que se presentó un error general no controlado durante el procesamiento del mensaje |