Ir al contenido principal

SMOWL Results API v2 + Microsoft Power BI

Cómo conectar los datos de monitorización de SMOWL con Microsoft Power BI mediante la Results API v2 y autenticación básica (Basic Auth), incluyendo errores frecuentes y su solución.

Escrito por Marco Mendoza

Introducción

Esta guía explica cómo conectar los datos de monitorización de SMOWL directamente con Microsoft Power BI para crear dashboards personalizados. La integración utiliza la Results API v2 de SMOWL a través del conector web de Power BI con autenticación básica (Basic Auth).

1. Requisitos previos

Antes de comenzar, asegúrate de tener los siguientes datos de tu entidad:

  • API Endpoint base: https://results-api.smowltech.net/index.php/v2/

  • Entity Name: El identificador de tu institución (ej. ESSMOWL). Lo puedes consultar con el equipo de soporte.

  • API Key: Tu token de acceso privado.

⚠️ Importante: La URL correcta de la API es https://results-api.smowltech.net/index.php/v2/. No confundas este endpoint con el portal de gestión my.smowltech.net, que es una interfaz web distinta y no es compatible con esta integración.

2. (Recomendado) Verificar credenciales con Postman antes de configurar Power BI

Antes de configurar Power BI, te recomendamos validar que tus credenciales funcionan correctamente usando Postman u otro cliente HTTP:

  1. Abre Postman y crea una nueva petición GET.

  2. En la URL, introduce, por ejemplo: https://results-api.smowltech.net/index.php/v2/registers/status/all

  3. Ve a la pestaña Authorization, selecciona el tipo Basic Auth.

  4. Introduce tu Entity Name como usuario y tu API Key como contraseña.

  5. Haz clic en Send. Si recibes una respuesta JSON con datos, tus credenciales son correctas y puedes continuar con Power BI.

Si recibes un error 401 en este paso, verifica el Entity Name y la API Key antes de continuar.

3. Configuración en Power BI Desktop

Una vez verificadas las credenciales, sigue estos pasos en Power BI Desktop:

  1. Ve a Inicio > Obtener datos > Web.

  2. Selecciona la opción Uso avanzado.

  3. En el campo de URL, introduce el endpoint al que deseas consultar. Ejemplo para obtener todos los registros:
    https://results-api.smowltech.net/index.php/v2/registers/status/all

  4. Haz clic en Aceptar.

4. Autenticación (Basic Auth)

Cuando Power BI solicite credenciales para acceder al recurso web:

  1. Selecciona el tipo de autenticación Básica (Basic).

  2. Nombre de usuario: Introduce tu Entity Name.

  3. Contraseña: Introduce tu API Key.

  4. Haz clic en Conectar.

💡 Nota técnica: Si ya habías intentado la conexión anteriormente y falla, puede que Power BI tenga credenciales antiguas en caché. Para resetearlas, ve a Archivo > Opciones y configuración > Configuración de origen de datos, busca la URL de la API y elimina o edita las credenciales guardadas.

5. Transformación de datos (Power Query)

Una vez establecida la conexión, los datos llegarán en formato JSON. Para convertirlos en tabla:

  1. Haz clic en Transformar datos.

  2. En el Editor de Power Query, haz clic en Convertir en tabla.

  3. Expande la columna de registros y selecciona los campos que necesitas (ej. studentName, examName, incidentType, incidentDate).

Ejemplo de código en lenguaje M (Editor Avanzado)

Si prefieres configurar la consulta directamente desde el Editor Avanzado, puedes usar este fragmento base. Sustituye TU_ENTIDAD y TU_API_KEY por tus credenciales reales:

let
    apiUrl = "https://results-api.smowltech.net/index.php/v2/registers/status/all",
    // Reemplaza TU_ENTIDAD y TU_API_KEY por tus credenciales reales
    authKey = "Basic " & Binary.ToText(Text.ToBinary("TU_ENTIDAD:TU_API_KEY"), BinaryEncoding.Base64),
    response = Web.Contents(apiUrl, [Headers=[Authorization=authKey]]),
    json = Json.Document(response),
    data = json[data],
    table = Table.FromList(data, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    table

6. Errores frecuentes y soluciones

Error 404 – Not Found

Causa más común: Se está usando una URL incorrecta. Asegúrate de que el endpoint utilice la versión correcta de la API.

  • ✅ Correcto: https://results-api.smowltech.net/index.php/v2/registers/status/all

  • ❌ Incorrecto (versión antigua): https://results-api.smowltech.net/api/v1/incidents

  • ❌ Incorrecto (portal web, no API): https://my.smowltech.net/index.php/Registers

Error 401 – No autorizado (Unauthorized)

Verifica que:

  • Estás usando el Entity Name (no el email ni otro identificador) como nombre de usuario.

  • La API Key introducida es correcta y no tiene espacios adicionales.

  • Has seleccionado el tipo de autenticación Básica (Basic), no "Anónima" ni "Windows".

  • Si el problema persiste, resetea las credenciales del origen de datos (ver Nota técnica en sección 4).

Error 500 – Error interno del servidor

Si el error 401 o 500 persiste después de verificar correctamente la autenticación, abre un ticket en el canal de desarrollo incluyendo el log completo de la consulta para que el equipo técnico pueda investigarlo.

Checklist de validación

  • ☐ ¿La URL del endpoint incluye /index.php/v2/ (no /api/v1/)?

  • ☐ ¿Has usado el Entity Name como usuario y la API Key como contraseña en Basic Auth?

  • ☐ ¿Has verificado las credenciales en Postman antes de configurar Power BI?

  • ☐ ¿Los datos se visualizan correctamente en el Editor de Power Query antes de cargar al modelo?

¿Necesitas ayuda adicional?

Si tienes dudas sobre qué endpoints están disponibles o qué campos devuelve cada uno, consulta el portal de documentación de la API o contacta con nuestro equipo de soporte en el chat. Puedes abrirlo haciendo clic en el búho azul situado en la esquina inferior derecha de esta página.

¿Ha quedado contestada tu pregunta?