Leyendo los foros, y por consultas que recibo en el email, sé que hay muchas dudas acerca del funcionamiento del e-mail en Microsoft CRM, y también algunos problemas. Así que me he decido a escribir un post explicando el funcionamiento del e-mail en Microsoft CRM 3.0 y la solución a los problemas más típicos. Vamos a empezar por distinguir los dos procesos básicos que tenemos en el email, el envío y la recepción.
Envío
Microsoft CRM permite enviar mensajes de múltiples formas, pero invariablemente los mensajes de salida serán enviados por el Servidor SMTP que se especificó durante la instalación. Y, al contrario de lo que mucha gente cree, este no tiene porque ser Microsoft Exchange. En la siguiente captura de pantalla podemos ver la pantalla del asistente de instalación donde se nos pregunta por el Servidor SMTP que queremos utilizar. La opción que viene marcada por defecto y que muestra la imagen indica que se usará el servidor SMTP del equipo local donde estamos instalando Microsoft CRM (El que viene incluido en Windows), mientras que si queremos utilizar algún otro servidor SMTP tendremos que hacer los ajustes necesarios como si se tratase de configurar un cliente de correo.
Lo cierto es que esta pantalla del asistente del proceso de instalación es un poco desafortunada ya que además de preguntar la configuración deseada para el correo saliente, también nos pregunta el nombre del servidor de Exchange que utilizaremos para el correo entrante, en caso de que lo utilicemos pues no es obligatorio, lo que induce a error.
El proceso completo de envío de un mensaje de correo desde Microsoft CRM es el siguiente:
- Desde el Cliente Web o los Clientes Outlook creamos un nuevo email
- El Servidor CRM procesa la solicitud y crea la correspondiente actividad de email saliente.
- El Servidor CRM el verdadero mensaje de email con los archivos adjuntos en caso de existir, y genera el token de seguimiento que se anexa al asunto del Mensaje. (Excepto en las campañas de marketing de envío de email en la que el email real no es enviado automáticamente, luego veremos la solución a este problema).
- El Servidor CRM envía el correo real utilizando el Servidor SMTP que tiene configurado, el indicado durante la instalación o el que hayamos fijado cambiando esta configuración (luego veremos como cambiar esta configuración ya que no hay forma directa en el gestor de implementaciones de CRM).
Recepción
Al contrario de lo que se piensa, Microsoft CRM no es ningún cliente de correo, no recibe correo… Es una aplicación que nos ofrece la posibilidad de registrar los correos que recibimos para realizar un seguimiento de las actividades de email relacionadas con nuestros clientes. Pero en ningún momento Microsoft CRM se dedicará a consultar a un servidor de correo para comprobar si hay correo nuevo, ni a Exchange ni a ningún otro. Aquí es donde surgen la mayor parte de las confusiones así que vamos a intentar aclararlo lo mejor posible.
Microsoft CRM nos permite, desde los clientes integrado con Outlook, promocionar manualmente correos que tengamos en Outlook al CRM, creando la correspondiente actividad de email en el mismo y relacionándola con los registros del CRM cuya dirección de correo coincida con la del remitente o la del destinatario.
Para evitar tener que promocionar manualmente los emails uno a uno, algo que puede llegar a ser muy tedioso en respuestas a actividades de marketing, los chicos de Microsoft han creado el Exchange Email Router. Esta utilidad incluida con el CRM se compone de una serie de reglas de reenvío (forward), que se instalan en los buzones de los usuarios del CRM, y que reenvían todos los emails recibidos en las cuentas de usuarios al buzón de correo que hemos creado para Microsoft CRM durante la instalación. Y de un Servicio de Windows, MSCRMEXRouterService, que necesita ser instalado en el mismo servidor de Exchange que en el que se encuentre el buzón del CRM. Esto no impide tener un clúster de Microsoft Exchange o tener las cuentas de usuarios repartidas entre varios servidores (habrá que configurar reglas de forward en cada servidor).
El Exchange Router promocionará o no los emails reenviados desde los buzones del usuario en base a la configuración que hayamos establecido el CRM, hacer seguimiento o no del correo (Configuración -> Configuración de organización -> Configuración del sistema -> Pestaña Seguimiento del correo electrónico), y la que tenga cada usuario en particular (Menú Herramientas -> Opciones -> Pestaña Actividades) para decidir si acepta o no acepta mensajes no solicitados. El correo no solicitado es todo correo que no es respuesta a un correo enviado desde el CRM( no tiene un token de seguimiento correcto), y correo solicitado es el que es respuesta a un correo enviado desde el CRM(tiene un token correcto).
El proceso completo de recepción es el siguiente:
- Llega un email al buzón del usuario del CRM y las reglas de reenvío envían una copia al buzón del CRM
- El Servicio MSCRMEXRouterService comprueba el buzón del CRM(lo hace cada cierto tiempo) y encuentra el mensaje nuevo. Lo envía al Servidor de Microsoft CRM para su procesamiento.
- El servidor de Microsoft CRM procesa el correo electrónico, para lo cual comprueba la existencia de un símbolo de seguimiento válido
- Si el campo de asunto del mensaje contiene un símbolo de seguimiento válido, el mensaje se considera «solicitado». Se crea una actividad de correo electrónico y se asocia a una
- actividad anterior (Siempre que tengamos activado el seguimiento de mensajes en las opciones del sistema en Microsoft CRM).
- Si no está presente un símbolo de seguimiento (o existe uno, pero no es válido), Microsoft CRM considera el mensaje de correo electrónico «no solicitado». Si el usuario de Microsoft CRM no está configurado para recibir correo electrónico no solicitado, se detiene el procesamiento. No obstante, si la configuración del usuario de Microsoft CRM le permite recibir correo electrónico no solicitado, se crea y almacena una actividad de correo electrónico.
- Los mensajes de correo electrónico procesados satisfactoriamente se eliminan del buzón de Microsoft CRM. Los mensajes que no se procesan satisfactoriamente se mueven a una cola de mensajes con errores (cola de mensajes no enviados) en el buzón de Microsoft CRM, y se informa de ello en el log de eventos de Aplicación del registro de eventos del Servidor.
Recepción (Sin Exchange)
Como ya mencionamos, Microsoft CRM se puede utilizar sin Exchange, y después de leer la sección anterior queda claro que funcionalidad perdemos: El seguimiento automático de mensajes de correo de entrada. Sin Exchange los emails de respuesta a actividades del CRM o todos los que reciba el usuario (dependiendo de la configuración) no serán registrados como actividades de email entrantes en el CRM de manera automática, aunque siempre podríamos hacerlo de manera manual desde algún Cliente Outlook.
Sin embargo, existe la posibilidad de que creemos un Router genérico que realice la misma función que el proporcionado para Exchange pero para cualquier otro servidor de correo que tengamos. Esta posibilidad se detalla al final de un documento de Microsoft donde se explica en detalle como funciona Microsoft CRM sin Exchange, y básicamente informa de que existen dos mensajes del método Execute() del Servicio Web del CRM que nos permiten realizar las mismas funciones que el Router de Exchange.
Algunas soluciones para problemas de email
Antes de nada decir que en el sitio web de Microsoft CRM hay una sección de solución de problemas dedicada al email, os recomiendo echarle un vistazo.
Problemas de Envío
P. ¿Cómo cambiar la configuración del servidor SMTP?
R. Podemos cambiarla modificando unas entradas del registro de Windows en el servidor de Microsoft CRM. En este artículo de la KB se explica como.
P. El envío masivo de emails en las campañas rápidas no se realiza automáticamente
R. Este es un pequeño fallo (o precaución que tiene el CRM), cuando generamos un envío masivo de emails se crean las actividades de envío de email pero no se envía el email real de manera automática. Podemos solucionarlo con un Workflow Assembly como se explican en la segunda parte de este artículo de la KB.
P. El envío masivo de emails en las campañas no se realiza automáticamente
R. Debemos asegurarnos que el Workflow Service esta iniciado y configurado para inicio automático, además de tener configurada como cuenta de usuario la del Servicio de Red en Windows 2003 o la de Servicio Local en Windows 2000.
P. Recibo un mensaje de error al intentar enviar o promocionar un email al CRM
R. Si has modificado en algún momento el Token de seguimiento dejando el valor a nulo la solución al problema está en este hotfix.
P. Recibo el mensaje de error «Failed to Initialize Token» al intentar enviar un email
R. Esto se debe probablemente a que el Servidor SMTP que estás usando no acepta relay desde el servidor de Microsoft CRM, debes configurarlo para que acepte el relay, si estás usando Exchange para el SMTP este artículo de la KB te puede ayudar.
P. Recibo el mensaje de error «Invalid Association: The request association is not valid» al intentar enviar correo desde el Cliente Web
R. Si tienes instalado Software de Antivirus en el Servidor CRM, y has configurado el servidor SMTP en otro servidor distinto al del CRM, la respuesta puede ser este artículo de la KB
Problemas de Recepción
P. ¿Cómo cambiar el Servidor Exchange de recepción?
R. En este artículo de la KB de explican los pasos necesarios, que básicamente consisten en Instalar el Router Exchange en el nuevo servidor, migrar el buzón del CRM a ese servidor, y añadir el servidor al PrivUserGroup del CRM.
Lista de Comprobación para Problemas de Recepción
Aquí en vez de desgranar los distintos problemas que se pueden dar, intentaré daros una lista de comprobación y algunas soluciones.
- Utiliza el asistente de implementación de reglas de reenvío para asegurarte de que las reglas están correctas. Si no es así utiliza el asistente para volver a desplegarlas.
- Asegúrate de que el Servicio MSCRMEXRouterService está iniciado, sino inícialo, y que está configura para iniciar sesión como cuenta del sistema local
- Abre Usuarios y Equipos de Active Directory (Herramientas Administrativas), localiza el grupo de usuarios PrivUserGroup {GUID} de tu implementación y asegúrate del equipo en el que está instalado el Router de Exchange aparece como miembro, si no es así añádelo.
- Asegúrate de que tienes activado el seguimiento de correo electrónico en la configuración del sistema. (Configuración -> Configuración de organización -> Configuración del sistema -> Pestaña Seguimiento del correo electrónico)
- Comprueba el log de Aplicación del registro de eventos del sistema para ver si hay algún mensaje de warning del Exchange Router indicando que un mensaje no ha podido ser procesado porque no hay ningún registro de Microsoft CRM que tenga la misma dirección de email. El mensaje exacto es más o menos así «[…] was determined to have none of its recipients match a Microsoft CRM user or queue». Si ocurre esto se puede deber a varias causas.
- Que los Usuarios de Microsoft CRM hayan sido configurados con una cuenta de correo que no es la que se utiliza para enviar desde Internet. Esto puede pasar cuando nuestro dominio de Active Directory es algo así como organization.com.local mientras que las direcciones de correo para internet son user@organization.com, lo que hace que cuando creemos Usuarios en CRM se coja su nombre de usuario seguido organization.com.local (user@organization.com.local) en vez de la dirección correcta. No hay más que modificar la dirección de email de los usuarios y el problema quedará solucionado
- Que el email haya sido respondido, o enviado, a una cuenta que no es la que el usuario tiene configurada para el CRM. Por ejemplo, si nuestra organización tiene dominios organization.com y organization.net puede ser que queramos que nos envíen email utilizando cualquiera de los dos dominios. Para que funcione debemos añadir la segunda cuenta en la ficha de los usuarios del CRM en el campo reservado para ello.
- También puede ser que en el Log de Aplicación encuentres un mensaje de error del Router de Exchange que indique algo así «server was unable to process the request», si la aplicación web del CRM está funcionando este error puede ser debido a lo que se comenta en el punto 3.
- Si nada de esto soluciona tu problema, utiliza las trazas de Microsoft CRM para obtener más información del error, busca en la KB del CRM, consulta los foros o ponte en contacto con soporte de Microsoft CRM.
Nota:
Espero que esto sea de utilidad, dejad todos los comentarios que queráis, tanto si os ha sido de utilidad como si os gustaría añadir algo.
Un saludo,
Marco Amoedo