Envío de Interacciones
A través de la API de Sagicc, tendrás la capacidad de emplear los canales de comunicación previamente configurados en la plataforma para enviar mensajes de manera programada a tus clientes, adaptándote a sus necesidades específicas y las necesidades de tu empresa. Esta funcionalidad permite la integración fluida de Sagicc con otros sistemas o plataformas, aprovechando los canales ya establecidos para el envío de mensajes. Asimismo, dicha interacción dejará un rastro en Sagicc de los casos y las interacciones, facilitando el seguimiento detallado de las comunicaciones enviadas.
Para enviar interacciones a través de la API, realiza una petición de tipo POST al endpoint https://{{sagicc_instance_url}}/api/interaction/send, y envía en el cuerpo de la petición un objeto con la siguiente estructura y atributos:
ticket_id: Identificador del caso que estará asociado a la nueva interacción. Requerido cuando
campaign_idno se encuentra especificado.campaign_id: Identificador de la campaña en la cual se creará un caso que estará asociado a la nueva interacción. Requerido cuando
ticket_idno se encuentra especificado.type: Especifica el tipo de mensaje a enviar. Siempre requerido. Sus posibles valores pueden ser:
sm: Standard message o mensaje estándar.
hsm: Highly structured message o mensaje altamente estructurado. Exclusivo para canales de tipo WhatsApp.
message: Texto o contenido del mensaje a enviar. Requerido cuando
template_idno se encuentra especificado.contact_info_id: Identificador del dato de contacto al cual será enviado el mensaje. Requerido cuando
contacto_infono se encuentra especificado.contact_info: Dato de contacto al cual será enviado el mensaje. Requerido cuando
contacto_info_idno se encuentra especificado.country_code: Código del país, asociado al dato de contacto al cual será enviado el mensaje (solo números, sin caracteres especiales).
channel_id: Identificador del canal que será utilizado para enviar el mensaje. Requerido cuando
channel_type_idno se encuentra especificado.channel_type_id: Identificador del tipo de canal que será enviado para enviar el mensaje. Sagicc utilizada el primer canal encontrado del tipo especificado para enviar el mensaje. Requerido cuando
channel_idno se encuentra especificado.transfer_to_agent: Especifica si una vez enviado el mensaje el caso debe o no asignarse a un agente. Sus posibles valores son
trueofalse.close_ticket: Especifica si el caso debe o no marcarse como cerrado luego de ser enviado al mensaje. Sus posibles valores son
trueofalse.attachments: Arreglo con información de los documentos adjuntos que serán enviados. Cada uno de los objetos debe tener la siguiente estructura:
url: URL del adjunto a enviar. La URL debe permitir descargar el archivo original. Siempre requerido.
file_name_real: Nombre real del archivo adjunto a enviar. En caso de no especificarlo, el archivo se enviará con un nombre generado por la plataforma.
mime_type: Identificador mime del archivo a enviar. Por ejemplo, image/png, application/pdf, etc. Siempre requerido.
subject: Asunto de la interacción. Para que la interacción sea reconocida como una respuesta a una interacción previa, se debe anteponer el prefijo “RE: {asunto de la interacción previa}”. Esto permite que los clientes de correo electrónico la agrupen correctamente en el mismo hilo de conversación Requerido cuando el canal seleccionado es de tipo “Correo Electrónico”.
cc: Cadena con correos electrónicos (separados por coma) a los cuales será enviada una copia de la interacción.
bcc: Cadena con correos electrónicos (separados por coma) a los cuales será enviada una copia oculta de la interacción.
in_reply_to: Identificador de la interacción previa a la cual la nueva interacción se enviará como respuesta. Este valor se obtiene consultando la interacción original mediante el endpoint
{model}/{id}de la API de Sagicc.template_id: Identificador de la plantilla a enviar. Corresponde a una plantilla previamente configurada en Sagicc. Requerido cuando
messageno se encuentra especificado.template_name: Nombre de la plantilla de tipo HSM, previamente configurada en Meta. Requerido cuando
typees “hsm”.template_params: Cadena que contiene las variables necesarias para la plantilla. Estas deben estar en el formato
{{1}},{{2}}, etc. (excluyendo variables básicas de Sagicc como{{id}}o{{cliente.primer_nombre}}) y deben separarse con el carácter|. La cantidad de parámetros debe coincidir con el número de variables externas definidas en la plantilla. Requerido cuandotypees “hsm”.template_media_url: URL del elemento multimedia para la plantilla, si la plantilla configurada en Meta lo requiere. Requerido cuando
typees “hsm”.template_lang: Idioma seleccionado para el envío de la plantilla. El idioma debe coincidir con alguno de los idiomas para la plantilla configurada en Meta. Requerido cuando
typees “hsm”.interactive_content: Elemento interactivo a enviar. Consiste en un objeto de tipo JSON que incluye todos los elementos interactivos a enviar, ya sea texto, elementos multimedia, botones, listas, etc.
En caso de que la interacción se envíe exitosamente, la respuesta correspondiente devolverá el código 200 junto con un mensaje de éxito. Además, se proporcionará información adicional proveniente del canal. En situaciones de fallo en la solicitud, la respuesta mostrará el código 400 acompañado de un mensaje que identifica la causa del error.
A continuación, te presentamos varios ejemplos de envío de interacciones mediante la API de Sagicc, abarcando diversos tipos de mensajes y canales.
Interacción Simple
{
"ticket_id": 596914,
"type": "sm",
"message": "Hi, good morning! Now can I help you????",
"contact_info_id": 146350,
"channel_id": 52
}
{
"ticket_id": 596914,
"type": "sm",
"message": "Hi, good morning! Now can I help you????",
"contact_info": "3001234567",
"channel_id": 52
}
Interacción de Correo Electrónico con adjuntos
{
"ticket_id": 11812,
"type": "sm",
"template_id": 168,
"contact_info": "janedoe@gmail.com",
"channel_id": 6,
"cc": "johnwick@gmail.com",
"attachments": [
{
"url": "https://sagicc-domains-storage.s3.ca-central-1.amazonaws.com/sagicctest/templates/83fb87b76db3169f40cc00562be14627.jpg",
"file_name_real": "test.jpg",
"mime_type": "image/jpg"
}
],
"template_params": "CASA|APARTAMENTO"
}
Interacción de Plantilla Tipo HSM (exclusivo para WhatsApp)
{
"ticket_id": 596914,
"type": "hsm",
"contact_info_id": 146350,
"channel_id": 52,
"template_name": "saludo_bdr_marketing",
"template_params": "Jane|34532|Good",
"template_language": "es",
"template_media_url": "https:\/\/sagicc-domains-storage.s3.ca-central-1.amazonaws.com\/sagicctest\/templates\/83fb87b76db3169f40cc00562be14627.jpg"
}
Interacción de WhatsApp con Contenido Interactivo - Media
{
"ticket_id": 596914,
"type": "sm",
"contact_info_id": 146350,
"channel_id": 52,
"interactive_content": {
"type": "media",
"media_url": "https:\/\/sagicc-domains-storage.s3.ca-central-1.amazonaws.com\/sagicctest\/templates\/83fb87b76db3169f40cc00562be14627.jpg",
"media_type": "image",
"media_caption": "Esta es la leyenda del archivo multimedia"
}
}
Interacción de WhatsApp con Contenido Interactivo - Botones
{
"ticket_id": 596914,
"type": "sm",
"contact_info_id": 146350,
"channel_id": 52,
"interactive_content": {
"type": "interactive",
"footer": "Pie de pagina de la plantilla",
"message": "Cuerpo\/mensaje de la plantilla",
"header_text": "Encabezado de la plantilla",
"header_type": "TEXT",
"interactive_type": "button",
"buttons": [
{
"text": "Si"
},
{
"text": "No"
}
]
}
}
Interacción de WhatsApp con Contenido Interactivo - Lista
{
"ticket_id": 596914,
"type": "sm",
"contact_info_id": 146350,
"channel_id": 52,
"interactive_content": {
"type": "interactive",
"footer": "Este es el pie de pagina de la plantilla con lista",
"message": "Este es el mensaje o cuerpo de la plantilla con lista",
"header_text": "Este es el encabezado de la plantilla con lista",
"header_type": "TEXT",
"interactive_type": "list",
"list_button_text": "Opciones",
"list": [
{
"rows": [
{
"title": "Opcion 1",
"description": "Esta es la opcion 1"
},
{
"title": "Opcion 2",
"description": "Esta es la opcion 2"
}
],
"section": "Seccion 1"
},
{
"rows": [
{
"title": "Opcion 1",
"description": "Esta es la opcion 1"
},
{
"title": "Opcion 2",
"description": "Esta es la opcion 2"
},
{
"title": "Opcion 3",
"description": "Esta es la opcion 3"
}
],
"section": "Seccion 2"
}
]
}
}