¿Qué es XPath/JsonPath y cómo usarlo en DANAconnect?
¿Qué es XPath/JsonPath y cómo usarlo en DANAconnect?
Resumen rápido
XPath/JsonPath es la ruta que permite encontrar un dato dentro de una estructura.
Use JsonPath cuando la respuesta esté en formato JSON:
$.cliente.emailUse XPath cuando la respuesta esté en formato XML:
/cliente/emailEn DANAconnect, este campo se utiliza para indicar qué valor debe tomarse desde una respuesta y guardarse o utilizarse dentro del flujo.
Explicación extendida
Cuando configuras algunos nodos o acciones dentro de DANAconnect, es posible que encuentres que debes llenar algo llamado XPath/JsonPath.
Este campo sirve para indicar de dónde debe tomar DANAconnect un dato específico dentro de una respuesta, archivo, estructura XML o estructura JSON.
XPath/JsonPath es la ruta que le indica al sistema dónde encontrar un dato específico dentro de un texto estructurado en formato JSON o XML.
Por ejemplo, si una respuesta contiene muchos datos de un cliente, XPath o JsonPath permite indicar exactamente cuál de esos datos se debe usar para actualizar un campo, tomar una decisión o continuar el flujo.
¿Por qué usamos este campo en DANAconnect?
Muchas integraciones no devuelven un dato aislado, sino una estructura completa con varios valores.
Por ejemplo, un servicio puede responder algo como esto:
{
"cliente": {
"nombre": "María Pérez",
"email": "maria.perez@correo.com",
"estado": "aprobado",
"documento": {
"numero": "V12345678",
"tipo": "Cédula"
}
}
}
Dentro de esa respuesta hay varios datos posibles:
- Nombre del cliente
- Estado
- Número de documento
- Tipo de documento
Si quieres tomar solamente el email, debes indicar la ruta hacia ese dato.
En JsonPath sería:
$.cliente.emailSi quieres tomar el número de documento, sería:
$.cliente.documento.numero¿Qué es JsonPath?
JsonPath se usa cuando la información viene en formato JSON.
JSON es un formato muy común en integraciones, APIs y respuestas de sistemas externos.
Un JSON suele verse así:
{
"solicitud": {
"id": "SOL-10045",
"estado": "pendiente",
"monto": 2500
}
}
Para obtener el estado de la solicitud, se usaría:
$.solicitud.estadoEl resultado sería:
pendientePara obtener el monto, se usaría:
$.solicitud.montoEl resultado sería:
2500¿Qué significa el símbolo $?
En JsonPath, el símbolo $ representa el inicio de la estructura.
Es decir, significa:
“Empieza a buscar desde el principio de la respuesta.”
Por ejemplo:
$.cliente.nombreSe lee así:
Desde el inicio de la respuesta, entra en
clientey toma el valor denombre.
¿Qué es XPath?
XPath se usa cuando la información viene en formato XML.
XML es otro formato usado por algunos sistemas, especialmente en integraciones más antiguas o servicios empresariales.
Un XML puede verse así:
<cliente>
<nombre>María Pérez</nombre>
<email>maria.perez@correo.com</email>
<estado>aprobado</estado>
</cliente>
Para obtener el email del cliente, se usaría:
/cliente/emailEl resultado sería:
maria.perez@correo.comPara obtener el estado, se usaría:
/cliente/estadoEl resultado sería:
aprobado¿Cuál debo usar: XPath o JsonPath?
Depende del formato de la información que estés recibiendo.
Si la respuesta viene en… | Usa… |
|---|---|
JSON | JsonPath |
XML | XPath |
Una forma sencilla de reconocerlo:
Si ves llaves { }, probablemente es JSON.
{
"estado": "aprobado"
}
Si ves etiquetas < >, probablemente es XML.
<estado>aprobado</estado>
¿Dónde se usa XPath/JsonPath en DANAconnect?
El campo XPath/JsonPath puede utilizarse cuando necesitas extraer un valor específico de una respuesta o resultado para guardarlo en un campo del flujo o de la base de datos.
Por ejemplo, en el Nodo de Documentos, dentro de la pestaña Configuración, puedes usar Add Field to Update para actualizar un campo con un valor obtenido desde una estructura JSON o XML.
Allí debes completar:
Campo | Qué significa |
|---|---|
Field Name | El campo que quieres actualizar |
XPath/JsonPath | La ruta donde está el dato que quieres guardar |
Ejemplo:
Field Name | XPath/JsonPath |
|---|---|
ESTADO_DOCUMENTO |
|
ID_DOCUMENTO |
|
FECHA_INDEXACION |
|
Esto le indica a DANAconnect que debe tomar esos valores desde la respuesta y guardarlos en los campos correspondientes.
Ejemplo práctico con JsonPath
Supongamos que el Nodo de Documentos devuelve una respuesta como esta:
{
"document": {
"id": "DOC-789456",
"status": "indexed",
"created_at": "2026-07-03T14:25:00"
}
}
Si quieres guardar el identificador del documento, usarías:
$.document.idResultado:
DOC-789456Si quieres guardar el estado del documento, usarías:
$.document.statusResultado:
indexedSi quieres guardar la fecha de creación o indexación, usarías:
$.document.created_atResultado:
2026-07-03T14:25:00Ejemplo práctico con XPath
Supongamos que una respuesta XML contiene:
<document>
<id>DOC-789456</id>
<status>indexed</status>
<created_at>2026-07-03T14:25:00</created_at>
</document>
Para obtener el identificador del documento, usarías:
/document/idResultado:
DOC-789456Para obtener el estado:
/document/statusResultado:
indexedPara obtener la fecha:
/document/created_atResultado:
2026-07-03T14:25:00¿Qué pasa si escribo mal la ruta?
Si la ruta XPath o JsonPath no corresponde con la estructura recibida, DANAconnect no podrá encontrar el valor.
Esto puede causar que:
- El campo no se actualice.
- El valor quede vacío.
- El flujo no guarde el dato esperado.
- El resultado no pueda usarse en pasos posteriores.
Por eso es importante validar que la ruta coincida exactamente con la estructura de la respuesta.
Errores frecuentes
Usar JsonPath cuando la respuesta es XML
Si la respuesta tiene etiquetas como <cliente>, <estado> o <document>, no debes usar JsonPath.
Incorrecto:
$.document.statusCorrecto:
/document/statusUsar XPath cuando la respuesta es JSON
Si la respuesta tiene llaves { }, debes usar JsonPath.
Incorrecto:
/document/statusCorrecto:
$.document.statusEscribir mal el nombre del campo
Los nombres deben coincidir con la estructura de la respuesta.
Si la respuesta dice:
{
"document": {
"status": "indexed"
}
}
La ruta correcta es:
$.document.statusNo:
$.document.estadoOlvidar niveles intermedios
Si el dato está dentro de una estructura anidada, debes incluir todos los niveles.
Ejemplo:
{
"cliente": {
"documento": {
"numero": "V12345678"
}
}
}
Correcto:
$.cliente.documento.numeroIncorrecto:
$.documento.numeroRecomendación
Antes de completar el campo XPath/JsonPath, revisa la estructura de la respuesta que estás recibiendo.
Identifica:
- Si la respuesta está en formato JSON o XML.
- El dato exacto que quieres guardar.
- La ruta completa hasta ese dato.
- El campo de DANAconnect donde quieres almacenar el valor.
Actualizado el: 03/07/2026
¡Gracias!
