POST /tickets
Utiliza este endpoint para crear conversaciones en AsisteClick desde tu propio sistema. Por ejemplo, puedes usar este endpoint si quieres enviar un mensaje de bienvenida a tus clientes luego de que confirmen una compra en tu tienda online. O por ejemplo, enviar una notificación de pago pendiente a través de un proceso cron en tu propio servidor.
El documento ofrece ejemplos de código en tres lenguajes de programación (Curl, Node.js, Python y Ruby) para efectuar una solicitud POST y crear una convesación.
La respuesta obtenida es un objeto JSON que contiene información el ticket generado.
Campo | Descripción | |
TOKEN | El token de la cuenta en AsisteClick. | |
deptid_assigned | ID del departamento al cual se asigna la conversación. | |
userid_assigned | ID del usuario a quien se le asigna la conversación, además de la asignación del departamento. Colocar 0 si se quiere que la conversación esté en la bandeja Sin Asignar y visible para todos los usuarios con acceso al departamento indicado en deptid_assigned. | |
status | OPEN si se quiere que la conversación quede en la bandaje Sin Asignar o Asignado a un usuario en particular. Si el cliente responde su respuesta será anexada a la conversación. CLOSED si se quiere que la conversación quede archivada. Si el cliente responde el bot responderá iniciando una nueva conversación desde el inicio. | |
customer_name | Nombre del cliente | |
customer_email | Correo electrónico del cliente. | Puede ser null si channel no es EMAIL. |
customer_phone | El teléfono del cliente en formato Whatsapp. | Puede ser null si channel no es WHATSAPP. |
channel | WHATSAPP o EMAIL | |
source_id | El número de WhatsApp integrado en AsisteClick por el cual se enviará el mensaje. Si es un mensaje de TELEGRAM entonces colocar el nombre del bot de Telegram integrado en AsisteClick. | Puede ser null si channel no es WHATSAPP ni TELEGRAM. |
subject | El título de la conversación (solo visible por los usuarios en caso que canal = WHATSAPP). En caso que channel sea EMAIL este valor será también el título del email. | |
custom_fields | Vector con diccionario de campo y valor. El campo y valor aparecerán en la columna derecha de la conversación (columna de metadata) y, en caso de existir en la lógica del bot, serán también procesados por este. | Puede ser null o un vector válido como: [{"cliente": "A-123"}] |
tags | Vector con etiquetas de la conversación (opcional). | ["CUSTOMER", "PLAN_COMPANY"] |
template_id | El ID de la plantilla aprobada por WhatsApp que se enviará al cliente. | Puede ser null si channel no es WHATSAPP. |
template_parameters | En caso que la plantilla tenga parámetros aquí se especifican los valores en un vector de strings. En el vector solo se colocan los valores del mensaje en el mismo orden en que figuran los campos en la plantilla. | Puede ser null si channel no es WHATSAPP o un vector válido como: ["Franco", "Maria"] |
telegram_chat_id | Si channel = 'TELEGRAM' colocar el ID del usuario o grupo de Telegram al cual enviar el mensaje | Puede ser null si channel no es TELEGRAM |
ack_callback_url | Para los envios por WhatsApp, en caso de colocar una URL de callback, se enviarán notificaciones de envio (sent), recepción (received), lectura (read) y respuesta (replied). | Puede ser null o no estar presente |
external_reference | Durante un callback se adjunta el valor de referencia externa recibido en el request original | Puede ser null o no estar presente |
En caso de utilizar el campo ack_callback_url colocando una URL válida, AsisteClick ejecutará un POST a esta URL cada vez que:
- El mensaje haya sido procesado por Whatsapp (sent)
- El mensaje haya llegado al usuario (received)
- El mensaje haya sido leido (read)
- El usuario envio una primer respuesta (replied)
Para el caso de evento "read" este se envia depenndiendo de la configuración de privacidad en el WhatsApp del usuario.
Para el caso del evento "replied" este se envia solo si el ticket es creado con el estado OPEN y únicamente con la recepción del primer mensaje recibido del usuario.
En tu endpoint definido en ack_callback_url recibirás un JSON con la siguiente estructura:
Para el caso de las respuestas del callback del evento "replied" se incluye también el campo "message" que contiene la respuesta del cliente, se esta manera:
1 | customer_name field is missing |
2 | deptid_assigned field value is missing |
3 | deptid_assigned field value is invalid |
4 | userid_assigned field is missing |
5 | userid_assigned field value is invalid |
6 | status field value must be OPEN or CLOSED |
7 | customer_email format is invalid |
8 | customer_phone format is invalid (must be numbers only) |
9 | Must provide customer_email, customer_phone or telegram_chat_id |
10 | channel value must be EMAIL, WHATSAPP or TELEGRAM |
11 | subject field value is invalid |
16 | customer_email field is required when channel is EMAIL |
17 | customer_phone field is required when channel is WHATSAPP |
18 | source_id is invalid or missing. This field is required when 'channel' is set to WHATSAPP |
19 | custom_fields format is not valid (should be field1=value1;field2=value2) or a vector of objects key:value [{field1:value1},{field2:value2}] |
20 | callback URL is not valid |
21 | invalid source_id provided. The company phone number is not linked to a Whatsapp channel |
22 | invalid template_id provided. Whatsapp message needs a template_id |
23 | invalid template_id provided. Whatsapp message needs a valid template_id |
24 | invalid template_id provided. Whatsapp message needs a valid template_id |
25 | invalid template_parameters provided. Whatsapp message needs a valid template_parameters vector value in a vector format |
26 | tags format is not valid (should be tag1;tag2;tag3) or a vector of tags [tag1,tag2,tag3] |
27 | telegram_chat_id field is required when channel is TELEGRAM |
28 | callback_url URL is not valid |
29 | ack_callback_url URL is too long. It must be less than 2048 characters |
32 | external_reference must be a string |
33 | external_reference is too long. It must be less than 20 characters |
34 | message field is required when status is PRIVATE |