Tickets

Actualizado 4 months ago Por Valentina

Detalle de un ticket

/v2/ticket/{ticket_id}/ - GET

Probar servicio

Retorna un objeto tipo ticket utilizando su id.

tip Para obetener el id "Código de identificación para el ticket" debes realizar la siguiente consulta /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

/v2/ticket/{ticket_id}/messages/ - GET

Probar servicio

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

/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

/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

/v2/ticket/{agent_ticket_id}/by_agent_id/ - POST Probar servicio

El ejecutivo en PostCenter 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/, 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

/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

/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

/v2/tickets/?country_id={country_id} - GET

Probar servicio

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}/ 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

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

 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

/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}/ 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

/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 ids de tickets, si necesita ver el detalle utilice el servicio /v2/ticket/{ticket_id}/ .

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 espacificado 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)

/v2/tickets/paginated/{social_network}/?from={from_date}&to={to_date}&next={next_page} - GET

Probar servicio

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/ .

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-201809-08-2017 12:22:25, pero NO otros formatos como 12/12/201212-12-1210-1203-16-201412-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 servicio /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


¿Te gustó lo que leíste?