Base URL https://api.afer.pro aferapp.com
CRM y marketing

Listar 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 que necesitas para crearOportunidad (funnel_fk, etapa_fk, canal_fk) 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).

Autenticación

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 POST 'https://api.afer.pro/listarFunnels' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{}'
<?php

$data = [
];

$ch = curl_init('https://api.afer.pro/listarFunnels');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    '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/listarFunnels', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({})
});

const resultado = await respuesta.json();

Respuesta

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "funnels": [
            {
                "funnel_fk": 39,
                "funnel": "Ventas web",
                "etapas": [
                    {
                        "etapa_fk": 219,
                        "etapa": "Lead",
                        "orden": 1,
                        "dormida": false
                    },
                    {
                        "etapa_fk": 220,
                        "etapa": "Propuesta enviada",
                        "orden": 2,
                        "dormida": false
                    },
                    {
                        "etapa_fk": 225,
                        "etapa": "Nurturing",
                        "orden": 9,
                        "dormida": true
                    }
                ]
            }
        ],
        "canales": [
            {
                "canal_fk": 12,
                "canal": "Web"
            },
            {
                "canal_fk": 13,
                "canal": "Recomendación"
            }
        ],
        "motivos_perdida": [
            {
                "motivo_fk": 3,
                "motivo": "Precio"
            }
        ],
        "tipos_accion": [
            {
                "tipo_fk": 1,
                "tipo": "Llamada contestada",
                "clave": "llamada-contestada"
            },
            {
                "tipo_fk": 4,
                "tipo": "Reunión virtual",
                "clave": "reunion-virtual"
            }
        ]
    }
}