API

POST /tickets

6min

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.

Crear una nueva conversacion
POST
Request
Header Parameters
token
required
String
Token de acceso
Body Parameters
deptid_assigned
required
Number
El ID del departamento al cual se vincula la conversación.
userid_assigned
required
Number
0 o en caso de querer asignar también la conversación a un usuario en particular colocar acá el ID del usuario.
status
required
String
OPEN / CLOSE
customer_name
required
String
El nombre del cliente.
customer_email
optional
String
NULL o el correo electrónico del cliente.
customer_phone
optional
String
NULL o el teléfono del cliente en formato Whatsapp.
channel
required
String
WHATSAPP / TELEGRAM / EMAIL
source_id
optional
Number
Si channel = 'WHATSAPP' entonces el número de WhatsApp integrado en AsisteClick por el cual se enviará el mensaje. Si channel = 'TELEGRAM' entonces el nombre del bot de Telegram integrado en AsisteClick.
subject
required
String
El título de la conversación (solo visible por los usuarios en caso que canal = WHATSAPP).
custom_fields
optional
Object
NULL o vector con valores para campos personalizados {campo: valor}
tags
optional
Array
NULL o vector con etiquetas de la conversación (opcional).
template_id
optional
Number
El ID de la plantilla aprobada por WhatsApp que se enviará al cliente.
template_parameters
optional
Array
En caso que la plantilla tenga parámetros aquí se especifican los valores en un vector de strings.
telegram_chat_id
optional
Number
Para Telegram, el ID Telegram del destinatario
ack_callback_url
optional
String
Para los canales que gestionan notificación de lectura (como Whatsapp) se enviarán las notificaciones a la URL definida acá. Puede ser nulo o no estar presente.
external_reference
optional
String
String o número de referencia externa o metadata


Ejemplo de un body

JS


Descripción de los campos

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

Callback de notificacion de mensaje

En caso de utilizar el campo ack_callback_url colocando una URL válida, AsisteClick ejecutará un POST a esta URL cada vez que:

  1. El mensaje haya sido procesado por Whatsapp (sent)
  2. El mensaje haya llegado al usuario (received)
  3. El mensaje haya sido leido (read)
  4. 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:

JS


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:

JS


Códigos de error

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