Melonhelp Tasks

API de Melonhelp Tasks

Próximamente. Melonhelp Tasks todavía no está disponible. Va a vivir en tasks.melonhelp.com y esta página describe cómo va a funcionar cuando salga.

Tasks tiene una API REST para que otras aplicaciones, scripts y tareas programadas lean y modifiquen tus tableros: tableros, listas, tarjetas, etiquetas, checklists, campos personalizados, comentarios y adjuntos. Te conectas con una clave de API personal.

Claves de API personales

Cada persona crea sus claves desde el botón API del encabezado de Tasks. Una clave empieza con tsk_ y actúa con tus permisos: solo ve y modifica los tableros de los que eres miembro, con el rol que tienes en cada uno.

OpciónQué define
NombrePara reconocerla, hasta 60 caracteres
Permisoread, solo lectura (por defecto), o write, lectura y escritura
TablerosTodos tus tableros o solo algunos
VencimientoNunca, 30 días, 90 días o 1 año
  • El token completo se muestra una sola vez, al crear la clave. Guárdalo en un lugar seguro: Tasks guarda solo una huella (hash) y en la lista ves el prefijo, el último uso y el vencimiento.
  • Puedes tener hasta 20 claves y revocar cualquiera cuando quieras.
  • Una clave deja de funcionar cuando la revocas, cuando vence o si tu cuenta se bloquea o se elimina.
  • Una clave de solo lectura puede hacer peticiones GET. Cualquier otra responde 403.
  • Con una clave no se pueden crear ni revocar claves, ni entrar a la administración.
  • Los cambios hechos con una clave aparecen en vivo en los tableros que otras personas tienen abiertos.
  • Estas claves son solo de Tasks. No sirven en la API de Tickets ni en la de Agents.

Claves limitadas a tableros

Al crear una clave puedes elegir Solo algunos y marcar hasta 50 tableros de los que seas miembro. Así una integración solo toca lo que necesita:

  • Fuera de esos tableros todo responde 404, igual que un tablero ajeno.
  • GET /boards lista solo esos tableros.
  • La clave no puede crear tableros nuevos ni mover o copiar tarjetas hacia otros tableros.
  • Si se eliminan todos sus tableros, la clave se queda sin acceso. Nunca pasa a tener acceso a todos.

Autenticación

Envía la clave en la cabecera Authorization de cada petición:

Authorization: Bearer tsk_...

Todas las rutas parten de https://tasks.melonhelp.com/api y usan JSON, salvo la subida de adjuntos, que va como multipart/form-data. Los errores responden con { "error": "mensaje" }.

CódigoQué significa
400Datos inválidos
401Falta la clave o no es válida
403Sin permiso: tu rol no alcanza o la clave es de solo lectura
404No existe o no tienes acceso
409Conflicto: el registro ya existe, u otra petición cambió lo mismo al mismo tiempo (por ejemplo, movió la tarjeta a otro tablero)
429Demasiadas peticiones seguidas, o el máximo diario de invitaciones a correos nuevos
503Servicio ocupado o sin conexión con la cuenta Melonhelp. Vuelve a intentarlo en unos segundos

Swagger

La documentación interactiva va a estar en https://tasks.melonhelp.com/api/docs y la especificación OpenAPI en /api/docs/openapi.json. Pulsa Authorize, pega tu clave tsk_ y prueba cualquier ruta con Try it out.

El flujo típico

  1. GET /boards devuelve tus tableros, o los de la clave si está limitada.
  2. GET /boards/{id} devuelve el tablero completo: listas, tarjetas, etiquetas, campos personalizados y miembros. De ahí sacas los ids que necesitas.
  3. Con esos ids trabajas sobre las tarjetas: POST /lists/{id}/cards crea una, PATCH /cards/{id} la edita, POST /cards/{id}/move la mueve, PUT /cards/{id}/fields/{fieldId} completa un campo personalizado y POST /cards/{id}/comments agrega un comentario.

Ejemplo con curl

Crear una tarjeta al final de la lista 12:

curl -X POST https://tasks.melonhelp.com/api/lists/12/cards \
  -H "Authorization: Bearer tsk_..." \
  -H "Content-Type: application/json" \
  -d '{"title": "Revisar el pedido 4821", "description": "Creada desde el CRM"}'

La respuesta es la tarjeta creada, con su id, y el código 201. Para dejarla primera en otra lista del mismo tablero:

curl -X POST https://tasks.melonhelp.com/api/cards/345/move \
  -H "Authorization: Bearer tsk_..." \
  -H "Content-Type: application/json" \
  -d '{"listId": 13, "position": 0}'

Rutas principales

RecursoRutas
TablerosGET /boards, POST /boards, GET /boards/{id}, PATCH /boards/{id}, GET /boards/{id}/search, GET /boards/{id}/activity, GET /boards/{id}/archived
MiembrosGET /boards/{id}/members, POST /boards/{id}/members, PATCH /boards/{id}/members/{userId}, DELETE /boards/{id}/members/{userId}
ListasGET /boards/{id}/lists, POST /boards/{id}/lists, PATCH /lists/{id}, POST /lists/{id}/move
TarjetasPOST /lists/{id}/cards, GET /cards/{id}, PATCH /cards/{id}, POST /cards/{id}/move, POST /cards/{id}/copy, DELETE /cards/{id}
Etiquetas y responsablesPOST /boards/{id}/labels, PUT /cards/{id}/labels/{labelId}, PUT /cards/{id}/members/{userId}
ChecklistsPOST /cards/{id}/checklists, POST /checklists/{id}/items, PATCH /items/{id}, POST /items/{id}/convert
Campos personalizadosPOST /boards/{id}/custom-fields, PATCH /custom-fields/{id}, PUT /cards/{id}/fields/{fieldId}
Comentarios y adjuntosPOST /cards/{id}/comments, POST /cards/{id}/attachments, GET /attachments/{id}/download
Cambios en vivoGET /boards/{id}/events, un flujo de eventos (SSE) que avisa cuando el tablero cambia

La lista completa, con cada campo y cada respuesta, está en Swagger.

Sigue leyendo

API de Melonhelp Tasks y claves personales (próximamente) | Docs de Melonhelp