curl --request GET \
--url https://api.raul.ugps.io/api/v1/cases/boardimport requests
url = "https://api.raul.ugps.io/api/v1/cases/board"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.raul.ugps.io/api/v1/cases/board', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.raul.ugps.io/api/v1/cases/board",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.raul.ugps.io/api/v1/cases/board"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.raul.ugps.io/api/v1/cases/board")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/cases/board")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"columns": [
{
"id": "pending",
"name": "Pendiente",
"color": "#F59E0B",
"order": 123,
"isFinal": true
}
],
"pipelines": [
{
"kind": "opportunity",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"isDefault": true,
"stages": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>",
"order": 123,
"isFinal": true,
"isWon": true,
"isLost": true,
"probability": 123
}
],
"columnByStage": {},
"entryRule": {
"type": "minStageOrder",
"minStageOrder": 123
}
}
],
"items": [
{
"kind": "opportunity",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"client": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hasLogo": true,
"logoUrl": "<string>"
},
"clientName": "<string>",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hasPhoto": true
},
"contactName": "<string>",
"owner": {
"id": "<string>",
"name": "<string>"
},
"scope": "client",
"tags": [
{
"id": 123,
"name": "<string>",
"color": "<string>"
}
],
"pipeline": {
"id": "<string>",
"name": "<string>"
},
"stage": {
"id": "<string>",
"name": "<string>",
"color": "<string>",
"order": 123,
"isFinal": true,
"isWon": true,
"isLost": true,
"probability": 123
},
"columnId": "<string>",
"priority": 1,
"scheduledResumeAt": "2023-11-07T05:31:56Z",
"nextDue": {
"at": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"source": "task",
"typeId": 123,
"typeName": "<string>"
},
"monthlyAmount": {
"amount": 12.5,
"currency": "UF"
},
"awaitingReply": {
"since": "2023-11-07T05:31:56Z",
"channel": "WhatsApp",
"firstReply": true,
"origin": {
"kind": "ticket",
"id": "<string>",
"label": "<string>",
"channel": "email"
}
},
"lastActivityAt": "2023-11-07T05:31:56Z",
"stageEnteredAt": "2023-11-07T05:31:56Z",
"pendingMention": {
"since": "2023-11-07T05:31:56Z",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"userName": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"hiddenBy": "entryRule",
"alert": {
"level": "none",
"reason": "reply",
"since": "2023-11-07T05:31:56Z"
}
}
],
"hidden": {
"total": 123,
"byPipeline": {}
},
"sort": "urgency",
"groupBy": "phase",
"dueAlerts": {
"blinkSeconds": 123,
"default": {
"warnHours": 123,
"criticalHours": 123
},
"byType": {}
},
"replyAlert": {
"warnHours": 123,
"criticalHours": 123,
"windowDays": 123
},
"waitingStages": {
"stageKeys": [
"<string>"
],
"warnHours": 123,
"criticalHours": 123
},
"mentionAlert": {
"warnHours": 123,
"criticalHours": 123
},
"closedRecently": {
"since": "2023-11-07T05:31:56Z",
"total": 123,
"byStage": {}
},
"columnPages": [
{
"columnId": "<string>",
"total": 123,
"byStage": {},
"nextCursor": "<string>",
"weighted": {}
}
],
"listPage": {
"page": 123,
"pageSize": 50,
"total": 123
},
"indicators": {
"opportunities": 123,
"tickets": 123,
"product": 123,
"unassigned": 123,
"stale": 123
},
"owners": [
{
"id": "<string>",
"name": "<string>"
}
]
}Casos: negocios y tickets abiertos por fase de trabajo
Vista Casos del staff: negocios y tickets abiertos agrupados por fase, con los pipelines de negocios y de tickets, sus etapas y el mapeo etapa → fase. Ordena (urgencia por defecto), filtra y pagina en el servidor: con paging=columns trae 50 por fase y columnPages (total real y cursor); con paging=list, páginas de 50 y listPage. Con groupBy=stage y un pipeline, las columnas son sus etapas (sin regla de entrada), con el riel de cerrados por etapa final y, en negocios, el ponderado por columna. Sin paging devuelve la hoja completa, hasta 1000 casos por tipo como antes.
curl --request GET \
--url https://api.raul.ugps.io/api/v1/cases/boardimport requests
url = "https://api.raul.ugps.io/api/v1/cases/board"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.raul.ugps.io/api/v1/cases/board', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.raul.ugps.io/api/v1/cases/board",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.raul.ugps.io/api/v1/cases/board"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.raul.ugps.io/api/v1/cases/board")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/cases/board")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"columns": [
{
"id": "pending",
"name": "Pendiente",
"color": "#F59E0B",
"order": 123,
"isFinal": true
}
],
"pipelines": [
{
"kind": "opportunity",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"isDefault": true,
"stages": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>",
"order": 123,
"isFinal": true,
"isWon": true,
"isLost": true,
"probability": 123
}
],
"columnByStage": {},
"entryRule": {
"type": "minStageOrder",
"minStageOrder": 123
}
}
],
"items": [
{
"kind": "opportunity",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"client": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hasLogo": true,
"logoUrl": "<string>"
},
"clientName": "<string>",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hasPhoto": true
},
"contactName": "<string>",
"owner": {
"id": "<string>",
"name": "<string>"
},
"scope": "client",
"tags": [
{
"id": 123,
"name": "<string>",
"color": "<string>"
}
],
"pipeline": {
"id": "<string>",
"name": "<string>"
},
"stage": {
"id": "<string>",
"name": "<string>",
"color": "<string>",
"order": 123,
"isFinal": true,
"isWon": true,
"isLost": true,
"probability": 123
},
"columnId": "<string>",
"priority": 1,
"scheduledResumeAt": "2023-11-07T05:31:56Z",
"nextDue": {
"at": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"source": "task",
"typeId": 123,
"typeName": "<string>"
},
"monthlyAmount": {
"amount": 12.5,
"currency": "UF"
},
"awaitingReply": {
"since": "2023-11-07T05:31:56Z",
"channel": "WhatsApp",
"firstReply": true,
"origin": {
"kind": "ticket",
"id": "<string>",
"label": "<string>",
"channel": "email"
}
},
"lastActivityAt": "2023-11-07T05:31:56Z",
"stageEnteredAt": "2023-11-07T05:31:56Z",
"pendingMention": {
"since": "2023-11-07T05:31:56Z",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"userName": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"hiddenBy": "entryRule",
"alert": {
"level": "none",
"reason": "reply",
"since": "2023-11-07T05:31:56Z"
}
}
],
"hidden": {
"total": 123,
"byPipeline": {}
},
"sort": "urgency",
"groupBy": "phase",
"dueAlerts": {
"blinkSeconds": 123,
"default": {
"warnHours": 123,
"criticalHours": 123
},
"byType": {}
},
"replyAlert": {
"warnHours": 123,
"criticalHours": 123,
"windowDays": 123
},
"waitingStages": {
"stageKeys": [
"<string>"
],
"warnHours": 123,
"criticalHours": 123
},
"mentionAlert": {
"warnHours": 123,
"criticalHours": 123
},
"closedRecently": {
"since": "2023-11-07T05:31:56Z",
"total": 123,
"byStage": {}
},
"columnPages": [
{
"columnId": "<string>",
"total": 123,
"byStage": {},
"nextCursor": "<string>",
"weighted": {}
}
],
"listPage": {
"page": 123,
"pageSize": 50,
"total": 123
},
"indicators": {
"opportunities": 123,
"tickets": 123,
"product": 123,
"unassigned": 123,
"stale": 123
},
"owners": [
{
"id": "<string>",
"name": "<string>"
}
]
}Query Parameters
Sólo los casos de ese pipeline (de negocios o de tickets)
Texto en el título, la empresa o el contacto (1 a 100 caracteres)
Vista Lista: suma los cerrados desde esa fecha (ISO con zona; no futura y hasta 366 días atrás)
Con closedSince: sólo los cerrados desde esa fecha
true, false Incluye los casos ocultos por la regla de entrada, marcados con hiddenBy
true, false Urgencia (por defecto: rojo, naranjo y el resto; a igual color, el que espera hace más tiempo; sin alerta, prioridad y antigüedad), más recientes o última actividad
urgency, recent, activity Columnas del Tablero: por fase de trabajo (por defecto) o por etapa del pipeline elegido (stage requiere pipelineId). Por etapa hay una columna por etapa, sin regla de entrada; column es el id de la etapa y las finales traen sus cerrados de la semana en closedRecently.byStage
phase, stage Tipo de caso; product es el pipeline de tickets Producto
opportunity, ticket, product Responsables separados por coma (hasta 50); none = sin responsable
Prioridades 1 a 4 separadas por coma
Sólo los casos sin movimiento hace más de 30 días
true, false Etiquetas separadas por coma (hasta 20): alguna de ellas
Empresa del caso
Origen del ticket; deja fuera los negocios
client, internal Tipo de ticket; deja fuera los negocios
problem, service_request Categoría del ticket; deja fuera los negocios
Actualizado desde ese día (hora de Chile, inclusivo)
Actualizado hasta ese día (hora de Chile, inclusivo)
columns: 50 casos por fase con columnPages; list: páginas de 50 con listPage. Sin él, la hoja completa (hasta 1000 casos por tipo, el contrato anterior)
columns, list Con paging=columns: sólo esa fase («Cargar más»)
Con paging=columns y column: nextCursor de la página anterior de la fase, del mismo orden
Con paging=list: página desde 0
Con paging=list: columna de la Tabla que reemplaza el orden; lo cerrado sigue al final
type, title, client, stage, owner, priority, alert, lastActivity, created Con sortField; por defecto asc
asc, desc Response
Fases, pipelines y casos
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Orden aplicado
urgency, recent, activity Columnas aplicadas: por fase o por etapa (entonces columns son las etapas del pipeline y columnId de cada caso es su etapa)
phase, stage Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Cerrados en los últimos 7 días con los mismos filtros
Show child attributes
Show child attributes
Con paging=columns: una entrada por fase pedida
Show child attributes
Show child attributes
Con paging=list
Show child attributes
Show child attributes
Totales de lo abierto y visible, sin los filtros de tipo, responsable, prioridad y movimiento; no viene al pedir una sola fase
Show child attributes
Show child attributes
Responsables presentes en la hoja; no viene al pedir una sola fase
Show child attributes
Show child attributes