Centro de ayuda
¿Cómo podemos ayudarte?👋

Tickets [Desarrolladores]

En esta sección podrás obtener información técnica sobre el uso de la API en general sobre los tickets, tanto como obtener el código de identificación, los retornos y también como cerrar o reasignar un ticket.

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

Notion image

Usando Postman

Te mostramos un ejemplo de como hacerlo

Notion image

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

Notion image

Usando Postman

Te mostramos un ejemplo de como hacerlo

Notion image

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

Notion image

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

Notion image

Usando Postman

Te mostramos un ejemplo de como hacerlo

Notion image

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 ids 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-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 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
 
¿Esto respondió tu pregunta?
😞
😐
🤩