Ir al contenido

Base64 a Archivo

Base64 a Archivo toma un string codificado en base64 del payload de datos actual y lo materializa como un archivo real en el servidor de Floogos. El nodo devuelve una URL de descarga y una ruta local que los nodos posteriores pueden usar — por ejemplo, para adjuntar el archivo a un correo, subirlo a almacenamiento en la nube o disparar una transferencia de archivos.

Se usa típicamente cuando una API externa (sistema de facturación, ERP, servicio de firma) devuelve un documento codificado en base64 en lugar de una URL de descarga directa.


CampoTipoRequeridoDescripción
base64_keytextNoNombre del campo de entrada que contiene el base64. Soporta notación punto (ej: document.pdf_base64). Default: pdf_base64
filenametextNoNombre del archivo sin extension. Soporta variables dinámicas: {{order_number}}, {{invoice_id}}, etc. Default: archivo
extensionselectNoExtension del archivo: .pdf, .png, .jpg, .xlsx, .zip, .xml, .json, .txt, .csv, .html. Default: .pdf
content_typetextNoOverride del Content-Type HTTP. Si vacío, se detecta automáticamente por la extension
base_urltextNoURL publica del engine para construir el enlace de descarga. Si vacío, usa la variable de entorno ENGINE_HOST. Necesario en instalaciones on-premise

Si el campo filename ya incluye una extension (ej: factura.pdf), el campo extension por separado se ignora.


{
"filename": "factura_ORD-4821.pdf",
"filePath": "/temporal/cli_7/factura_ORD-4821.pdf",
"urlPath": "https://us1.floogos.com/download/cli_7/factura_ORD-4821.pdf",
"contentType": "application/pdf",
"size": 48291
}
CampoDescripción
filenameNombre final del archivo con extension
filePathRuta absoluta local en el servidor
urlPathURL publica de descarga
contentTypeTipo MIME del archivo generado
sizeTamano del archivo en bytes

Ejemplo 1 — PDF de factura desde Fiskaly / HubFiscal

Sección titulada «Ejemplo 1 — PDF de factura desde Fiskaly / HubFiscal»

Tras llamar a una API de facturación que devuelve un PDF firmado en base64, decodificarlo y enviarlo por correo como adjunto.

Webhook (recibe pedido)
→ HTTP Request (POST a Fiskaly — devuelve { "pdf_base64": "JVBERi..." })
→ Base64 a Archivo
base64_key: "pdf_base64"
filename: "factura_{{@Webhook.order_number}}"
extension: ".pdf"
→ SendMail
para: "{{@Webhook.customer_email}}"
asunto: "Tu factura {{@Webhook.order_number}}"
adjuntos: "{{@Base64toFile.urlPath}}"
→ End

Algunas APIs devuelven el base64 dentro de un objeto anidado. Usa notación punto para acceder.

{
"base64_key": "document.content.data",
"filename": "informe_{{@HTTP.data.report_id}}",
"extension": ".xlsx"
}

Estructura de entrada:

{
"document": {
"content": {
"data": "UEsDBBQAAAAI..."
}
}
}

Ejemplo 3 — Subir a Google Drive tras decodificar

Sección titulada «Ejemplo 3 — Subir a Google Drive tras decodificar»

Decodifica un documento XML en base64 y subelo a Google Drive.

Base64 a Archivo
base64_key: "xml_base64"
filename: "exportacion_{{@Webhook.fecha}}"
extension: ".xml"
→ Google Drive (subir archivo)
filePath: "{{@Base64toFile.filePath}}"
carpeta: "Exportaciones/{{@Webhook.anyo}}"
→ End

En instalaciones on-premise, la URL publica del engine debe especificarse manualmente ya que ENGINE_HOST puede apuntar a una dirección interna.

{
"base64_key": "pdf_base64",
"filename": "documento_{{@Webhook.id}}",
"extension": ".pdf",
"base_url": "https://floogos.miempresa.com/api"
}

Ejemplo 5 — Flujo completo: Billpt → Email con factura adjunta

Sección titulada «Ejemplo 5 — Flujo completo: Billpt → Email con factura adjunta»
Webhook (nuevo pedido de Shopify)
→ Billpt Create Document (genera factura, devuelve pdf_base64)
→ Base64 a Archivo
base64_key: "pdf_base64"
filename: "factura_{{@BillptCreateDocument.document_number}}"
extension: ".pdf"
→ SendMail
para: "{{@Webhook.customer_email}}"
asunto: "Factura {{@BillptCreateDocument.document_number}}"
cuerpo: "Adjuntamos tu factura. Gracias por tu compra."
adjuntos: ["{{@Base64toFile.urlPath}}"]
→ End

  • Los archivos se crean en un directorio temporal con scope de cliente (/temporal/cli_<id>/). No se almacenan de forma permanente — usa nodos de Google Drive, AWS S3 o FTP para persistirlos.
  • La URL de descarga es valida mientras el archivo temporal exista en el servidor (normalmente se limpia tras la ejecución del workflow o mediante una limpieza programada).
  • Si el campo base64_key no se encuentra en los datos de entrada, el nodo lanza un error. Usa el nombre exacto del campo devuelto por el nodo anterior.
  • El string base64 puede incluir o no el prefijo data URI (data:application/pdf;base64,...) — ambos formatos se gestionan automáticamente.