Automatizacion email-a-ticket y flujos de trabajo

Esta parte explica el flujo completo de como los emails entrantes se convierten automaticamente en tickets, como funciona el threading (vinculacion de respuestas) y como se envian emails desde FacturaScripts.

Flujo completo: Email entrante a ticket

1. Recepcion del email

El sistema revisa el buzon IMAP de forma periodica:

  • Cada vez que un usuario carga una pagina de FacturaScripts, el plugin comprueba si ha pasado el intervalo configurado (por defecto 5 minutos) desde la ultima revision.
  • Si ha pasado el tiempo, conecta al servidor IMAP y busca emails no leidos (UNSEEN).
  • Se procesan un maximo de 50 emails por ciclo para evitar timeouts.

2. Analisis del asunto

Para cada email recibido, el sistema analiza el asunto buscando un codigo de ticket con el patron: TKT-XXXXX (5 digitos).

Si encuentra un codigo de ticket:

  • Busca el ticket correspondiente en la base de datos.
  • Si el ticket existe: anade el email como respuesta al ticket.
  • Si el ticket no existe (codigo invalido): crea un nuevo ticket.
  • Si el ticket estaba cerrado/resuelto: lo reabre automaticamente.

Si NO encuentra codigo de ticket:

  • Crea un nuevo ticket (si la opcion "Crear tickets automaticamente" esta activa).

3. Creacion de ticket desde email

Cuando se crea un ticket nuevo desde un email, se asignan los siguientes campos:

  • Asunto: Asunto del email (maximo 200 caracteres)
  • Descripcion: Cuerpo del email (texto plano preferido, HTML convertido a texto)
  • Creador: El "Usuario por defecto" configurado (no el remitente del email)
  • Origen: email
  • Email origen: Direccion de email del remitente
  • Email Message-ID: Identificador unico del email (para evitar duplicados)
  • Categoria: Soporte tecnico (por defecto)
  • Prioridad: Normal (por defecto)
  • Codigo: Generado automaticamente (TKT-XXXXX)
  • Estado: Abierto

4. Gestion de adjuntos

Los emails pueden incluir archivos adjuntos:

  • Primer adjunto: Se guarda como adjunto principal del ticket.
  • Adjuntos adicionales (del 2do al 5to): Se crean como respuestas automaticas al ticket, cada una con su adjunto.
  • Limite: Maximo 5 adjuntos por email.
  • Almacenamiento: Carpeta MyFiles/Tickets/ del servidor con nombre seguro.

5. Auto-respuesta al remitente

Si la opcion "Enviar confirmacion al crear ticket" esta activa y SMTP esta configurado, se envia automaticamente un email de confirmacion al remitente original con:

  • Asunto: [TKT-XXXXX] [Asunto original del email]
  • Contenido: El texto de la plantilla configurada, con {CODIGO} reemplazado por el codigo del ticket.

Flujo: Respuesta por email a un ticket existente

Desde un cliente externo (Gmail, Outlook, etc.)

Cuando alguien responde al email de confirmacion (o envia un email nuevo con el codigo del ticket en el asunto):

  1. El sistema detecta TKT-XXXXX en el asunto.
  2. Busca el ticket con ese codigo.
  3. Anade el contenido del email como nueva respuesta al ticket.
  4. La respuesta se marca con origen "email" y se muestra con un badge azul "Email".
  5. Si el ticket estaba cerrado o resuelto, se reabre automaticamente.

Desde FacturaScripts

Cuando un usuario responde a un ticket que provino de email:

  1. El usuario escribe su respuesta en el formulario del ticket.
  2. Hace clic en "Responder" (solo guarda internamente) o "Responder + Email" (guarda Y envia por correo).
  3. Si elige "Responder + Email":
    • La respuesta se guarda en el ticket.
    • Se envia un email al remitente original del ticket.
    • El email incluye el codigo del ticket en el asunto para mantener el threading.
    • Se incluyen cabeceras In-Reply-To y References para que los clientes de email agrupen la conversacion.

Threading de emails

El sistema mantiene la conversacion agrupada usando estandares de email:

  • Message-ID: Identificador unico de cada email (se guarda en email_msgid)
  • In-Reply-To: Referencia al Message-ID del email original
  • References: Cadena de Message-IDs de toda la conversacion
  • Subject: Incluye [TKT-XXXXX] para identificacion visual y automatica

Proteccion contra duplicados

Antes de procesar un email, el sistema verifica si el Message-ID ya existe en las tablas tickets y ticket_respuestas. Si ya existe, el email se ignora. Esto evita procesar el mismo email dos veces.

Procesamiento del cuerpo del email

Preferencia de formato

  1. Texto plano (text/plain): Preferido. Se usa directamente.
  2. HTML (text/html): Se convierte a texto plano eliminando etiquetas y preservando la estructura basica.

Emails multipart

El sistema maneja correctamente emails con estructura compleja: multipart/alternative, multipart/mixed y sub-partes anidadas.

Limites de seguridad

  • El cuerpo del email se limita a 10.000 caracteres.
  • Se eliminan caracteres de control (excepto saltos de linea).
  • Los nombres de archivos adjuntos se sanitizan.
  • Las codificaciones de caracteres se convierten automaticamente a UTF-8.

Envio de emails (SMTP)

Motor de envio

El plugin utiliza dos metodos de envio, en orden de preferencia:

  1. PHPMailer (incluido en FacturaScripts): Metodo preferido. Soporta autenticacion SMTP completa, cifrado TLS/SSL y codificacion UTF-8.
  2. Funcion mail() de PHP: Fallback si PHPMailer no esta disponible.

Formato de emails enviados

Los emails enviados desde FSMensajeria tienen:

  • Formato HTML con diseno limpio y profesional.
  • Version texto plano alternativa (generada automaticamente).
  • Cabecera: Barra con el codigo del ticket.
  • Pie de pagina: Instrucciones para responder incluyendo el codigo del ticket.

Comprobacion periodica vs. manual

  • Periodica: Se ejecuta en cada carga de pagina de FS, si ha pasado el intervalo configurado. Es automatica y transparente.
  • Manual: Al pulsar "Revisar emails ahora" en Config. Email. Es inmediata y muestra resultados.

Nota importante: La comprobacion periodica se ejecuta en Init::init(), que se llama en cada page load. Si nadie accede a FacturaScripts durante horas, no se revisan emails. Para entornos de produccion con alto volumen, se recomienda configurar un cron job que acceda periodicamente a cualquier pagina de FacturaScripts.

Resolucion de problemas avanzada

Los emails se procesan pero no se crean tickets: Verifica que la opcion "Crear tickets automaticamente" esta activada. Los emails ya procesados (mismo Message-ID) se ignoran.

Los tickets no se reabren al recibir un email: El email debe contener exactamente el formato TKT-XXXXX (con 5 digitos) en el asunto. Ejemplo valido: "Re: [TKT-00042] Mi problema". Ejemplo invalido: "Re: TKT-42 Mi problema".

Las respuestas no se agrupan en el cliente de email: Verifica que SMTP esta configurado y que se esta usando PHPMailer. Las cabeceras de threading solo se incluyen cuando se tiene el Message-ID original.

Los adjuntos no se guardan: Verifica que la carpeta MyFiles/Tickets/ tiene permisos de escritura. Solo se procesan los primeros 5 adjuntos por email.

Los emails HTML se ven mal en los tickets: El sistema convierte HTML a texto plano intencionadamente para evitar problemas de seguridad (XSS) y mantener los tickets limpios.

Indice completo de la documentacion

  • Parte 1: Instalacion y primeros pasos
  • Parte 2: Sistema de mensajeria interna (Chat)
  • Parte 3: Sistema de tickets
  • Parte 4: Configuracion de email (IMAP/SMTP)
  • Parte 5: Automatizacion email-a-ticket y flujos de trabajo (esta pagina)
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2026 FacturaScripts
0.07887s

Soporte