Detalle de un ticket
API call: v2/ticket/{ticket_id}/
- GET
Probar servicio Retorna un objeto tipo ticket utilizando su id.
tip Para obtener el id "Código de identificación para el ticket" debes realizar la siguiente consulta a la API: /v2/ticket/{ticket_id}/by_agent_id/
siendo {ticket_id}
el código de identificación de cara al ejecutivo
A continuación se ve un ejemplo de respuesta:
{
"id": "583dcb2855d0a46e438d0206",
"identifier": "261",
"created": "2016-11-29T18:38:32",
"current_assignment": {
"cmid": 467,
"name": "Francisco Pinto",
"email": "fapint@somecorporate.com"
},
"is_closed": true,
"last_author": "Jhon Doe",
"last_content": "Hi, I need help configuring with my product.",
"social_network": "facebook",
"subject": null,
"updated_time": "2016-12-21T13:17:29.283"
}
TicketSummaryResponse
Corresponde al resumen de un ticket de atención.
Campo | Descripción | Tipo |
id | Código de identificación para el ticket | string |
identifier | Código de identificación de cara al ejecutivo | string |
created | Fecha de creación del ticket | string |
current_assignment | El ejecutivo de atención asignado actualmente | CMEmbeddedSerializer |
is_closed | Indica si el ticket está cerrado | boolean |
last_author | Indica el nómbre del último participante en el ticket | string |
last_content | Indica el contenido enviado por el último participante en el ticket | string |
social_network | Canal vinculado al ticket | string |
updated_time | Fecha de actualización del ticket | string |
subject | En caso de ser un email, contiene el asunto | string |
CMEmbeddedSerializer
Corresponde al ejecutivo de atención o ejecutivo.
Campo | Descripción | Tipo |
cmid | Id del ejecutivo. | integer |
name | Nombre del ejecutvio | string |
email | Email del ejecutivo (opcional) | string |
Mensajes de un ticket
API call: /v2/ticket/{ticket_id}/messages/
- GET
Retorna los mensajes de un ticket utilizando su id.
A continuación se ve un ejemplo de respuesta:
{
"status": 200,
"messages": [
{
"content": "Hola Carlos, ¿en qué te podemos ayudar?",
"author_id": "572c2b2z20a9g4201250leb4",
"author_name": "Super Empresa",
"author_account": "superempresa",
"created": "2014-11-30T20:46:58",
"media": "http://placekitten.com/200/300"
},
{
"content": "@superempresa con uno de sus productos",
"author_id": "546b9b2720a9f1301050fec3",
"author_name": "Carlos Palma",
"author_account": "cpalma",
"created": "2014-11-30T18:55:04"
},
{
"content": "@superempresa hola tengo un problema",
"author_id": "546b9b2720a9f1301050fec3",
"author_name": "Carlos Palma",
"author_account": "cpalma",
"created": "2014-11-30T18:50:11"
}
]
}
MessagesListResponse
Corresponde a la lista de mensajes de un ticket.
Campo | Descripción | Tipo |
status | Código de retorno de la petición. 200 si la petición fue exitosa | integer |
messages | Lista de mensajes asociados al ticket | MessageResponse |
MessageResponse
Corresponde a un mensaje en particular.
Campo | Descripción | Tipo |
content | Texto del mensaje. | string |
author_id | Id del autor del mensaje | string |
author_name | Nombre del autor del mensaje | string |
author_account | Cuenta del autor del mensaje | string |
created | Fecha de creación | string |
media | Url de media (opcional) | string |
Cerrar ticket
API call: /v2/ticket/{ticket_id}/close/
- POST
Probar servicio
Cierra un ticket a partir de su id.
Ejemplos
Ejemplo de respuesta exitosa:
{
"status": 200,
"message": "Ok"
}
Usando swagger
Desde nuestro sitio api-cluster.postcenter.io podrás hacerlo de la siguiente manera
Usando Postman
Te mostramos un ejemplo de como hacerlo
Reasignar ticket
API call: /v2/ticket/{ticket_id}/reassign/
- POST
Probar servicio
Gatilla la re-asignación automática de un ticket a partir de su id.
Ejemplos
Ejemplo de respuesta exitosa:
{
"status": 200,
"message": "Ok"
}
Usando swagger
Desde nuestro sitio api-cluster.postcenter.io podrás hacerlo de la siguiente manera
Usando Postman
Te mostramos un ejemplo de como hacerlo
Obtener ticket interno desde el id visible por ejecutivos
API call: /v2/ticket/{agent_ticket_id}/by_agent_id/
- POST
Probar servicio
El ejecutivo en Adereso ve otro tipo de identificador en cada ticket y no es el mismo que se utiliza en esta API.
Para poder hacer transformaciones entre este tipo de identificador y el que ve el ejecutivo, hemos habilitado este servicio web que permite desde un id de ejecutivo, obtener el id interno de API.
Ejemplos
Ante una petición GET
a la URL /v2/ticket/261/by_agent_id/
de la API, obtendremos lo siguiente:
{
"status": 200,
"ticket_id": "5b64e514ed76411a80dd3bed"
}
Teniendo el ID interno, es posible obtener el id de ejecutivo consultando el servicio web de detalle de ticket.
Usando Postman
Te mostramos un ejemplo de como hacerlo
Obtener un ejecutivo disponible para atender un ticket
API call: /v2/ticket/{ticket_id}/get_possible_agent/
- GET
Probar servicio
Este servicio entrega el cmid
de un ejecutivo disponible para responder el ticket con id ticket_id
.
Por ejemplo, una respuesta posible puede ser la siguiente:
{
"status": 200,
"assignation": {
"cm" : 27,
"reason": "Assign Because Workload and non cm was online"
}
}
La respuesta tiene la siguiente estructura (AssignationResponse
):
Campo | Descripción | Tipo |
status | Código de retorno de la petición. 200 si la petición fue exitosa | integer |
assignation | Asignación de ejecutivo disponible | AssignationDetail |
La asignación tiene la siguiente estructura (AssignationDetail
)
Campo | Descripción | Tipo |
cm | Identificador del ejecutivo para asignar. null en caso de no encontrar ejecutivo disponible | integer |
reason | Texto descriptivo justificando la asignación correspondiente | string |
Obtener datos de un usuario
API call: /v2/ticket/{ticket_id}/users/
- GET
Probar servicio
Este servicio entrega el detalle de un usuario que participa en el ticket ingresado.
Por ejemplo, una respuesta posible puede ser la siguiente:
{
"status": 200,
"users": [
{
"twitter_followers_count": "-",
"client_number": "",
"phone": "",
"last_ticket": null,
"address": "",
"name": "sachavalentinar@gmail.com",
"nick_name": "sachavalentinar@gmail.com",
"gender": "0",
"country_id": null,
"ticket_count": 1,
"influencer": false,
"email": "sachavalentinar@gmail.com"
}
]
}
Usando swagger
Desde nuestro sitio api-cluster.postcenter.io podrás hacerlo de la siguiente manera
Usando Postman
Te mostramos un ejemplo de como hacerlo
Servicios Tickets
Tickets de clientes
API call: /v2/tickets/?country_id={country_id}
- GET
Retorna todos los tickets asociados a un cliente/usuario utilizando su country_id
.
tip "Preguntas relacionadas:""
* [¿Cuál es el campo `country_id` y dónde lo encuentro?](/faq/#cual-es-el-campo-country_id-y-donde-lo-encuentro)
* [¿Qué ocurre si no veo el `country_id` en el perfil de mis usuarios?](/faq/#que-ocurre-si-no-veo-el-rut-en-el-perfil-de-mis-usuarios)
La información que se retorna corresponde a un resumen de los tickets encontrados. Utilice el servicio /v2/ticket/{ticket_id}/
de la API para obtener un ticket en particular.
A continuación se ve un ejemplo de respuesta:
{
"status": 200,
"tickets": [
{
"id": "583dcb2855d0a46e438d0206",
"identifier": 1242,
"created": "2016-11-29T18:38:32",
"current_assignment": {
"cmid": 467,
"name": "Francisco Pinto",
"email": "fapint@somecorporate.com"
},
"is_closed": true,
"last_author": "Jhon Doe",
"last_content": "Hi, I need help configuring with my product.",
"social_network": "facebook",
"title": null,
"updated_time": "2016-12-21T13:17:29.283"
}
]
}
En esta respuesta hay 3 estructuras de datos anidados: Lista de Tickets
, que contiene varios Ticket
y el Ejecutivo de Atención
asignado, contenido en cada Ticket
.
TicketsListResponse
Corresponde a una lista de tickets.
Campo | Descripción | Tipo |
status | Código de retorno de la petición. 200 si la petición fue exitosa | integer |
tickets | Lista de tickets asociados al usuario | TicketSummaryResponse |
TicketSummaryResponse
Resumen de un ticket de atención.
Campo | Descripción | Tipo |
id | Código de identificación para el ticket | string |
identifier | Código de identificación de cara al ejecutivo | int |
created | Fecha de creación del ticket | string |
current_assignment | El ejecutivo de atención asignado actualmente | CMEmbeddedSerializer |
is_closed | Indica si el ticket está cerrado | boolean |
last_author | Indica el nómbre del último participante en el ticket | string |
last_content | Indica el contenido enviado por el último participante en el ticket | string |
social_network | Canal vinculado al ticket | string |
updated_time | Fecha de actualización del ticket | string |
title | En caso de ser un email, contiene el asunto | string |
CMEmbeddedSerializer
Corresponde al ejecutivo de atención.
Campo | Descripción | Tipo |
cmid | Id del ejecutivo. | integer |
name | Nombre del ejecutvio | string |
email | Email del ejecutivo (opcional) | string |
Tickets asociados a un usuario de Facebook
API call: /v2/tickets/facebook/?page_id={page_id}&uid={uid}
- GET
Probar servicio
Retorna todos los tickets asociados a un cliente/usuario a partir de su uid de Facebook en el contexto de un page_id.
La información que se retorna corresponde a un resumen de los tickets encontrados. Utilice el servicio /v2/ticket/{ticket_id}/
de la API para obtener un ticket en particular.
A continuación se ve un ejemplo de respuesta:
{
"status": 200,
"tickets": [
{
"id": "583dcb2855d0a46e438d0206",
"identifier": 1242,
"created": "2016-11-29T18:38:32",
"current_assignment": {
"cmid": 467,
"name": "Francisco Pinto",
"email": "fapint@somecorporate.com"
},
"is_closed": true,
"last_author": "Jhon Doe",
"last_content": "Hi, I need help configuring with my product.",
"social_network": "facebook",
"title": null,
"updated_time": "2016-12-21T13:17:29.283"
}
]
}
En esta respuesta hay 3 estructuras de datos anidados: Lista de Tickets
, que contiene varios Ticket
y el Ejecutivo de Atención
asignado, contenido en cada Ticket
. Explicadas arriba.
Tickets filtrados por estado
API call: /v2/tickets/state/{state}
- GET
Probar servicio
Retorna los tickets que están en cierto estado. Los estados soportados por el momento en la plataforma son open, closed, ignored, inProgress
.
Los tickets de su establecimiento estarán en alguno de estos estados, este servicio entrega los tickets que se encuentren en el estado especificado.
El endpoint retorna una lista de id
s de tickets, si necesita ver el detalle utilice el servicio /v2/ticket/{ticket_id}/
de la API.
Un ejemplo de respuesta exitosa es la siguiente
{
"tickets": [
"5cd4afa1071543013a2428de",
"5cd4a3fa0715435bc47578fd",
"5cd49e150715435bc47578fa",
"5cd48e710715435bc47578f7",
"5cd48cdb0715435bc47578f4",
"5cd48cb30715435bc47578f1",
"5cd48a450715435bc47578ee",
"5cd4881e0715435bc47578eb",
"5cd4881d0715435bc47578e8",
"5cd4881d0715435bc47578e5",
"5cd47a3c0715435bc47578e2",
"5cd46b520715435bc47578df",
"5cd467530715435bc47578dc",
"5cd4585f0715435bc47578d9",
...
],
"status": 200
}
En caso que el estado especificado sea distinto de los mencionados o que su establecimiento no tenga este estado, se entregará la siguiente respuesta
{
"message": "Non-existent status",
"status": 404
}
Tickets filtrados por canal y rango de fechas (Paginado | 20)
API call: /v2/tickets/paginated/{social_network}/?from={from_date}&to={to_date}&next={next_page}
- GET
Este servicio entrega los tickets asociados a cierto canal, en un rango de fechas especificado. Los tickets entregados aparecen de más reciente a más antiguo, según fecha de creación.
Si necesita saber cuales son los canales asociados a los tickets de su establecimiento puede utilizar el endpoint /v2/accounts/all/
de la API.
El rango de fechas se entrega a través de los parámetros from
y to
que representan los límites de fechas inferior y superior respectivamente, siendo from
inclusivo y to
exclusivo.
Las fechas deben ser especificadas en el formato DD-MM-AAAA [hh:mm:ss]
. Por ejemplo, serían válidas 12-10-2018
, 09-08-2017 12:22:25
, pero NO otros formatos como 12/12/2012
, 12-12-12
, 10-12
, 03-16-2014
, 12-10-2018 10:23
.
Este servicio es Paginado, por lo que los tickets se retornan en páginas de 20 (excepto quizás la última que podría entregar menos de 20). Para avanzar en las páginas, cada respuesta entrega el atributo next_page
, que corresponde a un identificador que debe ser utilizado en el parámetro next
de la siguiente consulta.
Un ejemplo de uso del servicio es el siguiente v2/tickets/twitter/from=18-04-2019&to=18-04-2019%2021%3A41%3A00
(%20 --> " ", %3A --> ":")
{
"tickets": [
{
"status": "Abierto",
"updated_datetime": "18-04-2019 22:30:21",
"created_datetime": "18-04-2019 21:40:59",
"social_network": "twitter",
"identifier": 322,
"id": "5cb8eeeb0715437c9126715e"
},
...
{
"status": "Abierto",
"updated_datetime": "19-04-2019 08:38:52",
"created_datetime": "18-04-2019 10:38:52",
"social_network": "email",
"identifier": 223,
"id": "5cb8ee6c0715437c91266f71"
}
],
"status": 200,
"number_of_tickets": 100,
"next_page": "5cb8fa940715430c9c8824f3"
}
En esta respuesta se entregan los 100 primeros tickets, lo que se indica en el atributo number_of_tickets
. Además se entrega en next_page
el identificador que se debe utilizar para obtener la siguiente página.
Al pedir la paǵina 2 ,v2/tickets/twitter/from=18-04-2019&to=18-04-2019%2021%3A41%3A00&next=5cb8fa940715430c9c8824f3
obtenemos
{
"tickets": [
{
"status": "Abierto",
"updated_datetime": "19-04-2019 08:35:52",
"created_datetime": "18-04-2019 12:24:24",
"social_network": "email",
"identifier": 222,
"id": "5cb8ee660715437c91266e27"
},
{
"status": "Abierto",
"updated_datetime": "19-04-2019 08:21:10",
"created_datetime": "18-04-2019 08:22:15",
"social_network": "email",
"identifier": 221,
"id": "5cb8ee660715437c91266e22"
}
],
"status": 200,
"number_of_tickets": 2,
"next_page": null
}
Que retorna los 2 tickets faltantes, además el atributo next_page
tiene el valor null
que indica que no hay más páginas en la consulta.
Los elementos retornados por cada ticket corresponden a un resumen del mismo. Si necesita más información de un ticket utilice el siguiente servicio de la API: /v2/ticket/{ticket_id}/
para obtener un ticket en particular.
TicketSummaryResponse
Corresponde al resumen de un ticket de atención.
Campo | Descripción | Tipo |
id | Código de identificación para el ticket | string |
identifier | Código de identificación de cara al ejecutivo | int |
created_datetime | Fecha de creación del ticket | string |
updated_datetime | Fecha de actualización del ticket | string |
status | Estado del ticket (Abierto, Cerrado, Ignorado, En Progreso) | string |
social_network | Canal vinculado al ticket | string |