Listar funnels
https://api.afer.pro/api/v1/crm/funnels
POST https://api.afer.pro/listarFunnels
El catálogo del CRM: funnels con sus etapas, canales de captación, motivos de pérdida y tipos de acción.
El diccionario para trabajar con el resto de endpoints del CRM: los identificadores cifrados que necesitas para crearOportunidad (funnelId, etapaId, canalId — sus parámetros aceptan tanto el formato cifrado como el numérico legacy) y las etiquetas para interpretar consultarOportunidades y consultarCRM.
Las etapas llegan en su orden de pipeline; las marcadas como dormida son aparcamientos (nurturing, en espera…) que no forman parte del embudo lineal. Los tipos_accion incluyen su clave semántica estable (la que alimenta los rates de actividad).
Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →
Este endpoint requiere autenticación con API key: sin credenciales responde 401.
Parámetros del cuerpo
Este endpoint no necesita parámetros: basta un cuerpo JSON vacío ({}) con tus cabeceras de autenticación.
Ejemplo de petición
curl -X GET 'https://api.afer.pro/api/v1/crm/funnels' \
-H 'X-API-KEY: afer_tk_TU_TOKEN' \
-H 'X-API-SECRET: afer_sk_TU_SECRET'
<?php
$ch = curl_init('https://api.afer.pro/api/v1/crm/funnels');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-KEY: afer_tk_TU_TOKEN',
'X-API-SECRET: afer_sk_TU_SECRET',
]);
$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/api/v1/crm/funnels', {
method: 'GET',
headers: {
'X-API-KEY': 'afer_tk_TU_TOKEN',
'X-API-SECRET': 'afer_sk_TU_SECRET'
}
});
const resultado = await respuesta.json();
Respuesta
{
"errorCode": 200,
"errorMsg": "",
"data": {
"funnels": [
{
"funnelId": "aBc123XyZ…",
"funnel": "Ventas web",
"etapas": [
{
"etapaId": "dEf456…",
"etapa": "Lead",
"orden": 1,
"dormida": false
},
{
"etapaId": "gHi789…",
"etapa": "Propuesta enviada",
"orden": 2,
"dormida": false
},
{
"etapaId": "jKl012…",
"etapa": "Nurturing",
"orden": 9,
"dormida": true
}
]
}
],
"canales": [
{
"canalId": "mNo345…",
"canal": "Web"
},
{
"canalId": "pQr678…",
"canal": "Recomendación"
}
],
"motivos_perdida": [
{
"motivoId": "sTu901…",
"motivo": "Precio"
}
],
"tipos_accion": [
{
"tipoId": "vWx234…",
"tipo": "Llamada contestada",
"clave": "llamada-contestada"
},
{
"tipoId": "yZa567…",
"tipo": "Reunión virtual",
"clave": "reunion-virtual"
}
]
}
}