Mucha gente se pregunta acerca de esta opción de etiquetado automático de emails disponible en el Diagnóstico de CRM (Diagnostics) y lo que hace. En este blog  abordaremos el tema con mayor detalle.

¿Qué es el proceso de etiquetado de emails?

El proceso de etiquetado de emails es un proceso que explora el servidor de CRM por mensajes que se están rastreando actualmente en Outlook. Si hay modificaciones del lado del servidor de CRM, recuperará estos cambios del servidor de CRM a Outlook sólo para emails modificados.

Cuando se activa el Etiquetado Automático de Emails mediante la herramienta de Diagnóstico de Clientes de CRM, esto actualizará la clave de registro TagDisabled a 0 en la siguiente ruta: HKEY_CURRENT_USUARIO\Software\Microsoft\MSCRMClient\{Orgid}

 

Cuando inicia el proceso de etiquetado de emails, la computadora del cliente envía una solicitud al servidor Dynamics CRM para obtener una lista de los 51 mensajes de email más rastreados recientemente de los cuales el usuario actual es partícipe. Como parte del proceso de etiquetado de emails, buscará los emails con base en los siguientes criterios:

  • Registros en los cuales participa el usuario de CRM
  • Registros que presentan una fecha modificada en o después de TagStartDateOffline o TagStartDateOnline especificada en el registro de clientes de Outlook
  • Registros en donde mensaje-ID (ID del mensaje) no es cero

El Servidor de CRM recopilará entonces la lista y la enviará de regreso a Cliente de CRM para Outlook en forma de XML que consiste en los siguientes valores:

  • TimeStamp (marca de hora)
  • MensajeID (ID del mensaje)
  • ActivityID (ID de actividad)

Si el CRM para la máquina del cliente de Outlook recibe 51 registros de vuelta en la respuesta del Servidor de CRM, aumenta la solicitud a los últimos 101 mensajes de email. Lo continúa haciendo hasta que pueda confirmar que esté procesando todos los mensajes en donde participa este usuario que ocurrieron después de la marca de hora en la consulta.

El proceso de etiquetado de emails utiliza una base de datos SDF denominada EmailCache.sdf. Este archivo puede encontrarse en la siguiente ubicación:

%AppData%\Microsoft\MSCRM\Client

Hay dos tablas que existen en la base de datos EmailCache.sdf que son utilizadas por el proceso de etiquetado:

  • EmailIDMappingTable (tabla de mapeo de identificadores de emails)
  • RecentEmailsTable (tabla de emails recientes)

 

RecentEmailsTable:

Esta tabla contiene una lista de todos los emails recientes que fueron recibidos por el cliente de CRM para Outlook dentro de Microsoft Office Outlook. Esto incluye la bandeja de entrada y todas las subcarpetas dentro del buzón.
Esta tabla se utiliza como un índice del buzón del usuario de modo que el Add-in de CRM no tiene que explorar el buzón del usuario en forma continua buscando elementos para etiquetar.

A medida que el usuario recibe nuevos mensajes de email en su bandeja de entrada, esta tabla es actualizada con el messageID del nuevo mensaje, así como la EntryID (identificador de entrada) de modo que pueda localizar el mensaje si más adelante éste requiera ser etiquetado.

Cuando un objeto se desplaza dentro de Outlook, o es eliminado, también inhibe la capacidad del Add-in de CRM para encontrar el registro en el buzón del usuario. Cada uno de estos eventos es rastreado también y la RecentEmailsTable es actualizada de forma correspondiente.

 

EmailIDMappingTable:

Esta tabla contiene los mapeos entre los mensajes de email en el buzón del usuario y el ActivityID para el mensaje de email rastreado que existe en la base de datos de Dynamics CRM:

 

Etiquetado (tagging):

Cuando la máquina del cliente de CRM para Outlook devuelve resultados del servidor de CRM de elementos que necesitan ser etiquetados, busca el elemento en la EmailIDMappingTable para ver si ya ha sido etiquetado anteriormente.

Si el mensaje ya está enlazado (ya existe dentro de la EmailIDMappingTable), el Add-in de CRM verifica que la información en el registro sea correcta, como por ejemplo el RegardingID. Si se requiere una actualización, es decir, una actualización desde el Servidor de CRM, el Add-in de CRM actualiza el elemento dentro de Outlook, and después actualiza la fila correspondiente en la EmailIDMappingTable. Una vez que se haya concluido, pasa al siguiente registro.

Si el mensaje no existe dentro de la EmailIDMappingTable, el Add-in de CRM busca el MessageID y EntryID en la RecentEmailsTable. Utiliza esta información para encontrar el objeto dentro de Outlook y actualiza las propiedades personalizadas de estos registros. Una vez que se haya
actualizado el elemento, inserta una fila que corresponde a la actualización en la EmailIDMappingTable. Cuando intenta encontrar el objeto en Outlook, es posible que aparezcan solicitudes de lectura al servidor de Exchange en caso de que Outlook no esté configurado para el modo Intercambio de Cache. Si está configurado para el modo Intercambio de Cache, lo encontrará utilizando el archivo OST.

Las propiedades personalizadas que se mencionan con anterioridad incluyen crmAsyncSend, crmEntryID, crmmessageID, crmxml y crmsecondpagexml. Estos pueden encontrarse en el email haciendo clic en la pestaña Developer (desarrollador) en el email. Una vez estando allí, seleccione Design this Form (diseñar esta forma), haga clic en la pestaña All Fields (todos los campos) y seleccione User-defined fields in this item (campos definidos por usuario en este elemento).

Si el email es enviado fuera del dominio de Exchange, las propiedades definidas por usuario serán eliminadas para el email que es recibido por el destinatario.

Algunas de las claves de registro que afectarán el etiquetado se presentan a continuación:

  • TagLastUpdateTime (etiqueta de última actualización) – Se actualiza con la hora del Sistema de la última exploración de etiquetado.
  • TagStartDateOnline (etiqueta de fecha de inicio en línea) – Se actualiza con base en la TagLastUpdateTime restando el tiempo del TagGracePeriod (etiqueta del periodo de gracia) que es de 24 horas por default.
  • TagStartDateOffline (etiqueta de fecha de desconexión) – Se actualiza con base en el TagLastUpdateTime restando el tiempo del TagGracePeriod (etiqueta del periodo de gracia) que es de 24 horas por default.
  • TagGracePeriod (etiqueta de periodo de gracia) El valor predeterminado es de 86400 segundos. Se puede establecer un valor inferior permitiendo que el etiquetador de emails del cliente de Outlook procese registros que no tengan la misma antigüedad. Por ejemplo, el valor 3600 debería permitir el procesamiento de emails de aproximadamente 1 hora de antigüedad.
  • TagMaxAggressiveCycles - http://support.microsoft.com/kb/2585157
  • TagPollingPeriod (etiqueta de periodo de exploración) - http://support.microsoft.com/kb/2585157- El valor predeterminado es 5 minutos.

 

Dos de los escenarios más comunes en donde el etiquetado es útil son los siguientes:

  1. Cuando el registro de usuario (Settings-configuraciones| Administration-administración| Users-usuarios) se configura para utilizar el Enrutador de Email. Cuando se utiliza el Enrutador de Email para los emails entrantes y salientes, el cliente de CRM para Outlook no puede determinar si los emails deben ser rastreados o no, ya que son, en su lugar, enrutados a través del Enrutador de Email para el rastreo. Debido a que el objetivo principal del proceso de etiquetado consiste en localizar cambios a emails desde el Servidor de CRM y llevarlos al cliente de CRM para Outlook, el etiquetado se encargará de que estos emails se hayan agregado a o modificado en CRM y que deban ser rastreados cuando se solicitan registros del servidor de CRM, y después se bajarán estos cambios al cliente de CRM para Outlook para mostrar estos como rastreados.
  2. El segundo escenario se presenta en donde no están marcadas las Configuraciones del Sistema (Settings-configuraciones| Administration-administración| System Settings-configuraciones del sistema) "Track e-mails sent between CRM users as two activities" (rastrear emails enviados entre usuarios de
    CRM como dos actividades). Si se incluyen dos usuarios de CRM en un email, cada usuario tiene la opción de rastrear esto en el CRM. Ahora, si el User1 (usuario 1) lo rastrea a un registro específico (Record A), el registro Set Regarding será actualizado entonces en el servidor
    de CRM para ese email. Sin embargo, si el User2 rastrea este email desde su cliente de CRM para Outlook establece la relación en un registro diferente en CRM (Record B), esto actualizará Set Regarding para el mismo registro de email en el servidor de CRM. Si el etiquetado se encuentra activado en el cliente de CRM para Outlook del Usuario 1, este cambio de set regarding bajará al email del Usuario 1 en su cliente de CRM para Outlook y se podrá ver ahora este Set Regarding al Record B.

 Saludos!,

Claudia C.