Crear tickets desde tu sistema

Abrir casos en Tinkay cuando algo falla en tu producto.

Flujo típico

  1. Tu sistema detecta un problema que afecta a un cliente.
  2. Buscás o creás el contacto en Tinkay por email.
  3. Creás el ticket con la prioridad adecuada y las etiquetas que uses para reportar.
  4. Guardás el id del ticket en tu base para poder enlazarlo después.

Implementación

Node
async function abrirTicket({ user, incident }) {  const headers = {    Authorization: `Bearer ${process.env.TINKAY_API_KEY}`,    "Content-Type": "application/json",  };  // 1. Contacto (409 significa que ya existe)  const contactRes = await fetch("https://api.tinkay.app/v1/contacts", {    method: "POST",    headers,    body: JSON.stringify({ name: user.name, email: user.email, company: user.company }),  });  const contactBody = await contactRes.json();  const contactId = contactRes.status === 409 ? contactBody.error.contact_id : contactBody.data.id;  // 2. Ticket  const ticketRes = await fetch("https://api.tinkay.app/v1/tickets", {    method: "POST",    headers,    body: JSON.stringify({      subject: `${incident.code}: ${incident.title}`,      description: incident.summary,      contact_id: contactId,      priority: incident.blocking ? "urgent" : "high",      tags: ["incidente", incident.module],    }),  });  const { data } = await ticketRes.json();  return data; // { id, number, slaDueAt, ... }}

Si el incidente nace de una conversación existente, pasá conversation_id y el ticket queda vinculado en el Inbox.

Cerrar el círculo

Suscribite a ticket.updated por webhook para reflejar el estado en tu propio panel y avisarle a quien reportó cuando se resuelve.

Cómo saber que quedó bien

  • El ticket aparece en el Inbox con su número
  • El SLA se calculó según la prioridad