Skip to content

Manual de Plantillas para Notificaciones de Firma Adjunta

Este documento explica cómo utilizar los campos disponibles en las plantillas de notificaciones (correos electrónicos) utilizadas por el servicio de notificación de firmas adjuntas.

Estructura de Datos Disponibles

Las plantillas de correo electrónico tienen acceso a las siguientes variables:

.Title         - El título del documento en formato HTML
.Body          - El cuerpo del documento en formato HTML
.Organization  - La organización (acreedor)
.Profile       - El perfil del destinatario
.URL           - La URL del documento

Objetos y Campos Principales

Objeto Organization

El objeto Organization contiene la información relacionada con el acreedor:

.Organization.ID             - ID de la organización
.Organization.Phone          - Número de teléfono
.Organization.Email          - Correo electrónico
.Organization.Nickname       - Apodo o alias
.Organization.Verified       - Si está verificado
.Organization.Type           - Tipo de entidad (natural o legal)
.Organization.IDType         - Tipo de identificación
.Organization.IDNumber       - Número de identificación
.Organization.Profile        - Perfil con datos personales
.Organization.ImportID       - ID de importación

Objeto Profile

El objeto Profile contiene los datos del perfil del destinatario:

.Profile             - El perfil completo

Acceso a Datos del Perfil con commonData

La función commonData está diseñada específicamente para acceder a campos comunes entre perfiles de tipo Natural y Legal. Esta función sólo permite acceder a un conjunto limitado de campos, y es la forma recomendada de obtener estos datos ya que maneja automáticamente las diferencias entre tipos de perfil.

Campos disponibles a través de commonData

La función commonData solo permite acceder a los siguientes campos:

{ { commonData .Profile "Name" }}        - Nombre (persona completo o empresa)
{ { commonData .Profile "Email" }}       - Correo electrónico
{ { commonData .Profile "Address" }}     - Dirección
{ { commonData .Profile "AddressCity" }} - Ciudad de la dirección
{ { commonData .Profile "IDNumber" }}    - Número de identificación
{ { commonData .Profile "Initials" }}    - Iniciales

Funciones Disponibles en Plantillas

Todas las funciones estándar de Go Templates están disponibles, junto con funciones personalizadas definidas en domain.Funcs().

Funciones útiles

{ { htmlEscape .Body }}       - Escapa caracteres HTML para mostrar código seguro
{ { urlEscape .URL }}         - Codifica una URL para uso seguro en enlaces

Ejemplos de Uso Común

Acceder al Nombre del Destinatario

{ { commonData .Profile "Name" }}

Acceder al Correo Electrónico del Acreedor

{ { .Organization.Email }}

Incluir la URL del Documento

<a href="{ { .URL }}">Ver documento</a>

Mostrar el Título del Documento

<h1>{ { .Title }}</h1>

Mostrar el Cuerpo del Documento

<div>{ { .Body }}</div>

Ejemplos Prácticos de Plantillas para Notificaciones de Firma Adjunta

Ejemplo de Notificación para Deudor sobre Documento Aceptado

Esta plantilla se envía a los deudores cuando un documento ha sido aceptado y firmado. La URL generada será específica para el portal del deudor.

html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Documento Firmado y Aceptado</title>
    <style>
      body {
        font-family: Arial, sans-serif;
        line-height: 1.6;
        color: #333;
        max-width: 600px;
        margin: 0 auto;
        padding: 20px;
      }
      .header {
        text-align: center;
        margin-bottom: 30px;
        border-bottom: 2px solid #eee;
        padding-bottom: 15px;
      }
      .content {
        background-color: #f9f9f9;
        padding: 20px;
        border-radius: 5px;
        border-left: 4px solid #28a745;
      }
      .document-details {
        margin: 20px 0;
        padding: 15px;
        background-color: #fff;
        border-radius: 5px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      }
      .footer {
        margin-top: 30px;
        font-size: 12px;
        color: #777;
        text-align: center;
        border-top: 1px solid #eee;
        padding-top: 15px;
      }
      .button {
        display: inline-block;
        padding: 10px 20px;
        background-color: #28a745;
        color: white;
        text-decoration: none;
        border-radius: 5px;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <div class="header">
      <h2>Documento Firmado y Aceptado</h2>
    </div>

    <div class="content">
      <p>Estimado(a) { { commonData .Profile "Name" }},</p>

      <p>
        Le informamos que el documento "<strong>{ { .Title }}</strong>" ha sido
        aceptado y firmado correctamente. Ya puede acceder al documento completo
        con todas las firmas adjuntas.
      </p>

      <div class="document-details">
        <h3>Detalles del Documento</h3>
        <p><strong>Título:</strong> { { .Title }}</p>
        <p>
          <strong>Acreedor:</strong> { { commonData .Organization.Profile "Name"
          }}
        </p>
      </div>

      <p>Para acceder al documento firmado, haga clic en el siguiente botón:</p>

      <div style="text-align: center; margin: 30px 0;">
        <a href="{ { .URL }}" class="button">Ver Documento Firmado</a>
      </div>

      <p>
        Si el botón no funciona, puede copiar y pegar la siguiente dirección en
        su navegador:
      </p>
      <p style="word-break: break-all;">{ { .URL }}</p>
    </div>

    <div class="footer">
      <p>
        Este es un mensaje automático generado por el sistema de firmas
        digitales. Por favor no responda a este correo.
      </p>
      <p>
        © { { now.Year }} { { commonData .Organization.Profile "Name" }}. Todos
        los derechos reservados.
      </p>
    </div>
  </body>
</html>

Ejemplo de Notificación para Interesados del Acreedor

Esta plantilla se envía a los miembros interesados de la organización acreedora cuando hay una actualización en el estado de un documento. La URL generada apuntará al portal del acreedor.

html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Actualización de Estado de Documento</title>
    <style>
      body {
        font-family: Arial, sans-serif;
        line-height: 1.6;
        color: #333;
        max-width: 600px;
        margin: 0 auto;
        padding: 20px;
      }
      .notification {
        background-color: #e6f7ff;
        border-left: 4px solid #1890ff;
        padding: 15px;
        margin-bottom: 20px;
      }
      .document-info {
        background-color: #f8f8f8;
        padding: 15px;
        border-radius: 5px;
        margin: 20px 0;
      }
      .body-preview {
        max-height: 200px;
        overflow: hidden;
        border: 1px solid #ddd;
        padding: 15px;
        margin: 20px 0;
        background-color: #fff;
        position: relative;
      }
      .body-preview::after {
        content: "...";
        position: absolute;
        bottom: 0;
        right: 0;
        padding: 5px 10px;
        background-color: rgba(255, 255, 255, 0.8);
      }
      .actions {
        text-align: center;
        margin: 30px 0;
      }
      .button {
        display: inline-block;
        padding: 10px 20px;
        background-color: #1890ff;
        color: white;
        text-decoration: none;
        border-radius: 5px;
        font-weight: bold;
      }
      .footer {
        margin-top: 30px;
        font-size: 12px;
        color: #777;
        border-top: 1px solid #eee;
        padding-top: 20px;
      }
    </style>
  </head>
  <body>
    <div class="notification">
      <h2>Documento Firmado y Listo</h2>
      <p>
        Se ha completado el proceso de firma de un documento que requiere su
        atención.
      </p>
    </div>

    <p>Estimado(a) { { commonData .Profile "Name" }},</p>

    <p>
      Le informamos que el documento "<strong>{ { .Title }}</strong>" ha sido
      firmado por todas las partes involucradas y está listo para su revisión.
    </p>

    <div class="document-info">
      <h3>Información del Documento</h3>
      <p><strong>Título:</strong> { { .Title }}</p>
      <p><strong>Estado:</strong> Aceptado y Firmado</p>
    </div>

    <div class="body-preview">
      <h4>Vista previa del contenido:</h4>
      { { .Body }}
    </div>

    <p>
      Para ver los detalles completos del documento y descargar la versión
      firmada, haga clic en el siguiente enlace:
    </p>

    <div class="actions">
      <a href="{ { .URL }}" class="button">Ver Documento Completo</a>
    </div>

    <div class="footer">
      <p>
        Este mensaje fue enviado desde el sistema de gestión de documentos. Por
        favor no responda a este correo.
      </p>
      <p>
        © { { now.Year }} { { commonData .Organization.Profile "Name" }}. Todos
        los derechos reservados.
      </p>
      <p>Si tiene preguntas, comuníquese con el administrador del sistema.</p>
    </div>
  </body>
</html>

Casos Específicos

Plantillas para Notificaciones a Deudores

Para plantillas enviadas a deudores, la URL será:

{DomainURL}/debtor/documents/{DocumentID}

Plantillas para Notificaciones a Acreedores

Para plantillas enviadas a acreedores o miembros interesados, la URL será:

{DomainURL}/creditor/documents/{DocumentID}

Solución de Problemas Comunes

Acceso a Datos del Perfil

Para acceder correctamente al nombre del destinatario, use:

{ { commonData .Profile "Name" }}

Formato de Contenido HTML

Recuerde que los campos .Title y .Body ya están en formato HTML y pueden ser usados directamente en la plantilla:

<div>{ { .Title }}</div>
<div>{ { .Body }}</div>

Tabla de Campos Disponibles con commonData

Campos comunes disponibles a través de commonData

CampoDescripciónEjemplo de uso
NameNombre{ { commonData .Profile "Name" }}
EmailCorreo electrónico{ { commonData .Profile "Email" }}
AddressDirección{ { commonData .Profile "Address" }}
AddressCityCiudad{ { commonData .Profile "AddressCity" }}
IDNumberNúmero de identificación{ { commonData .Profile "IDNumber" }}
InitialsIniciales{ { commonData .Profile "Initials" }}

Consejos Importantes

  1. Utilice ÚNICAMENTE la función commonData para acceder a los campos comunes entre perfiles, y recuerde que solo los 6 campos listados están disponibles a través de esta función.

  2. Los campos .Title y .Body ya están en formato HTML, por lo que no necesitan procesamiento adicional.

  3. Si necesita adjuntar archivos, estos se manejan automáticamente por el servicio cuando un documento tiene estado "Aceptado".