Beruflich Dokumente
Kultur Dokumente
Introducción
SugarCRM
SugarCRM como base para desarrollos.
¿Para qué integrar?
Ejemplos:
Integraciones con SugarCRM
Uso de iFrames.
Compartir el calendario vía vCalendar.
Carpeta de correo monitorizada.
Uso de WebToLead
Acceso a Sugar vía Webservices
Implementación: Soluciones disponibles
A) Carpeta de correo monitorizada
Configuración.
B) Web To Lead.
Método genérico.
Mediante módulos de Drupal.
Campos personalizados (Custom)
Ventajas de Webform2Sugar
Problemas de Webform2Sugar
C) Webservice.
SugarOnDrupal
Limitaciones de SugarOnDrupal
Desarrollo de módulos a medida
Licencia.
SugarCRM
SugarCRM es un sistema para controlar las relaciones con el cliente. Lleva control del
proceso desde el momento del contacto (Cliente Potencial) hasta la asistencia posterior a
una venta o proyecto (Casos).
SugarCRM controla:
● Clientes potenciales.
● Contactos (personas)
● Cuentas (empresas)
● Campañas de marketing
● Oportunidades
● Casos
● Agenda: Eventos, Tareas, Reuniones.
● Documentos: Gestión documental muy básica.
Cada una de los registros que controla SugarCRM tiene un comportamiento muy similar.
Dispone de 3 vistas diferentes:
● Cada registro tiene una serie de campos que lo definen. (Equivalente a las
columnas)
● Cada registro tiene relaciones con otros registros de otros módulos. (pueden ser 1-n
o n-n).
Una vez creado un nuevo módulo este puede modificarse mediante edición directa del
código generado y exportarse en forma compatible con el cargador de módulos.
Es por lo tanto un candidato excelente para reemplazar los típicos registros que hay en
todas las organizaciones basados en hojas de cálculo o bases de datos de escritorio
(Access), y sustituirlos por una aplicación completa y 100% web.
Drupal nos proporciona todo aquello que necesitamos para ofrecer una vista web para el
público en general. Podemos adaptar dicha vista a distintos perfiles de usuario. SugarCRM
sin embargo se asemeja más a una herramienta ofimática típica. Es necesario que los
usuarios dispongan de una cierta formación para usarla.
Ejemplos:
Los casos más típicos que nos encontramos son:
● Márketing: Drupal se usa para generar sitios web para anunciar determinados
productos. Estos sitios buscan obtener datos de “Clientes Potenciales” o incluso
peticiones de ofertas. Los datos se pasan a SugarCRM que permite obtener
estadísticas de la campaña.
● Soporte técnico: Desde Drupal se ofrece a los usuario autenticados (clientes)
un formulario desde donde solicitar ayuda o notificar un problema. Al rellenar
el formulario se crea un nuevo Caso en SugarCRM que será tratado por los
encargados de soporte.
Uso de iFrames.
En caso de necesitar mostrar ambas aplicaciones una dentro de otra (Sugar funcionando
dentro de Drupal o a la inversa) no nos queda más remedio que recurrir al uso de iFrames.
DataSync Suite
http://www.sugarforge.org/publisher/?group_id=514
DataSync Suite nos proporciona una de las mejores formas de mostrar ambas aplicaciones
integradas y con un mecanismo de SSO (Single Sign On) lo que nos permite autenticarnos
una sola vez y después movernos por ambas aplicaciones.
Incrustando las aplicaciones en marcos añade un menú superior con accesos directos a la
Administración de Drupal y a las tareas más típicas de SugarCRM. Además añade un tema
de administración de Drupal específico.
Aparecen los típicos problemas del uso de marcos, por ejemplo, que al abrir enlaces en
pestañas el menú superior se pierde y con él la sensación de una única aplicación.
Con esta solución no se intercambian datos entre Drupal y Sugar, pero se comparten los
usuarios.
Esto permite disponer de un formulario en Drupal para la atención al cliente. Cada consulta
vía formulario se convierte en un Caso.
Uso de WebToLead
SugarCRM dispone de un punto de entrada para la creación de Leads (Clientes
potenciales) a través de un formulario web.
Cada campaña de marketing puede tener asociado un formulario diferente de forma que
podemos medir el resultado que está teniendo una campaña determinada.
No existe ninguna solución robusta y estable de software libre para compartir datos ente
Sugar y Drupal. Para este cometido no nos queda otra opción que realizar un desarrollo a
medida e implementar nuestro propio cliente usando SOAP o REST.
Implementación: Soluciones
disponibles
A) Carpeta de correo monitorizada
No se trata de una integración como tal, puesto que ambas aplicaciones permanecen
independientes, sino más bien una forma de relacionarlas usando un sistema intermedio, en
este caso, el email.
No necesita plugins.
● En el lado de Drupal: Formulario de Contacto (Contact).
También se pueden usar otro tipo de formularios más avanzados (Webform).
● En el lado de SugarCRM: Monitorización de carpeta de correo.
Desde Drupal se envían email a una cuenta que será monitorizada por Sugar. Los nuevos
emails generarán “Casos” en el CRM.
Un caso se utiliza para registrar un problema, queja o simplemente una duda que hay que
resolver relacionada con alguno de los clientes registrados. Los usos típicos son: atención
al cliente, asistencia técnica, gestión de reclamaciones, etc...
Con este método no solo podemos registrar en Sugar nuevos casos a partir de un
formulario de Drupal, sino que también quedarán registrados todos los emails posteriores en
relación a la petición.
Configuración.
Desde SugarCRM se configura una nueva cuenta para monitorizar: (Admin -> Email
Entrante -> Nueva cuenta de correo de grupo)
Indicaremos los datos de la cuenta a monitorizar y la carpeta remota desde donde se
obtienen los emails igual que en cualquier cliente de correo. Indicamos que hay que crear
casos desde correos.
Revisamos los “planificadores” y nos aseguramos de que está activa la tarea “Check
Inbound Mailboxes“ (activa por defecto). Debe existir una tarea programada que invoque el
cron de Sugar a intervalos regulares (Ver documentación de SugarCRM).
En la parte de Drupal tenemos que configurar un método para que envíe correos a este
buzón. El más sencillo de poner en marcha es el propio formulario de contacto de Drupal
(módulo contact), aunque existen otros.
El módulo “Contact” viene incluido en el Core de Drupal pero está desactivado por defecto.
Así que lo activamos y lo configuramos. (Administrar -> Construcción del sitio -> Formulario
de contacto)
Cada vez que se rellene y envíe el formulario de contacto en Drupal se creará un nuevo
caso en Sugar. Si la dirección indicada en el remitente es un contacto en Sugar se asociará
el ticket al contacto, si es de una cuenta se asociará la cuenta. Si respondemos al email
manteniendo el número de caso en el asunto, toda la conversación quedará asociada al
caso.
B) Web To Lead.
Existe una forma genérica de crear formularios para obtener datos de clientes potenciales
y otras específicas de Drupal (mediante módulos). En todos los casos, los formularios van
asociados siempre a una campaña de marketing, así que lo primero que haremos será
registrar una nueva campaña dentro de SugarCRM.
Método genérico.
SugarCRM nos permite generar nuestros propios formularios web, modificarlos mediante un
editor WYSIWYG y obtener el código para integrarlos en cualquier web.
Una vez que tenemos el código generado, en Drupal lo insertamos dentro de un nodo, un
bloque o una sección (según necesitemos). El formato de entrada debe ser “Full HTML”.
La configuración por defecto del formato FullHTML de Drupal rompe el formulario
generado por Drupal. Es necesario cambiar su configuración y eliminar los todos los filtros.
(Configuración del Sitio -> Formatos de Entrada):
Mediante módulos de Drupal.
Existen 2 módulos de Drupal disponibles que hacen más sencilla la inclusión de formularios
para obtener clientes potenciales:
● SugarCRM Webform Integration: drupal.org/project/sugarwebform
● Webform2Sugar: drupal.org/project/webform2sugar
Más moderno que el anterior, más actualizado. Usaremos este último.
Webform permite crear todo tipo de formularios o cuestionarios. Para más información se
puede consultar drupal.org/project/webform.
Antes de poder enlazar formularios en Drupal con Sugar es necesario que haya, al menos
una campaña creada. Asociaremos un formulario de Drupal con una campaña. Podemos
tener varios formularios que se enlacen con distintas campañas.
Tomaremos el código que aparece entre “record=” y el símbolo “&” (si lo hay). Debe
ser un código similar a este: “2706522c-0293-b862-ccc3-4cc06becd7ff” . Todos los
identificadores de SugarCRM tienen la misma forma, así que hay que asegurarse de
que copiamos el que aparece tras el parámetro “record”.
4. Una vez creado el formulario hay que definir cada uno de los campos (componentes)
que aparecerán en el mismo. Para cada campo podemos decidir si corresponden
a un campo existente en SugarCRM. En este caso se registrarán cada vez que se
envíe el formulario.
Cada vez que añadamos un nuevo componente al formulario, se nos dará la opción
de enlazarlo con un campo existente.
Campos personalizados (Custom)
SugarCRM permite añadir campos personalizados a cualquier módulo mediante su
herramienta “Estudio”. El problema radica en que si añadimos nuevos campos a
los “Clientes Potenciales”, inicialmente no aparecerán en el desplegable.
Ejemplo:
1. En SugarCRM vamos a “Studio” (recomiendo entrar en Inglés pues en algunas
ocasiones se producen errores en el Estudio con las versiones traducidas).
Agregamos un nuevo campo personalizado para Leads (Clientes potenciales):
Lo llamamos “campo_de_prueba”, pero internamente se guardará
como “campo_de_prueba_c”. SugarCRM añade “_c” a todos los campos custom.
2. Ahora tenemos que hacer que este nuevo campo esté disponible desde Drupal para
poder mapearlo. Editamos el fichero webform2sugar_fields.php dentro del módulo
y reemplazamos alguno de los múltiples campos de descripción por el nuevo campo.
Ventajas de Webform2Sugar
Utilizar el módulo en lugar de incrustar el formulario creado desde SugarCRM tiene varias
ventajas:
● Mantiene una apariencia uniforme con el resto del sitio.
● Permite el uso combinado con otros módulos que alteren el funcionamiento del
formulario. Especialmente útiles son los módulos anti-spam.
● El acceso al CRM se realiza desde Drupal en lugar de el navegador del usuario. El
punto de entrada del CRM queda oculto. Facilita la protección contra el Spam y los
ataques DDoS para los que Drupal está más preparado.
● Permite limitar el número de envíos en un intervalo de tiempo.
Problemas de Webform2Sugar
● No es compatible con la versión 3.x de Webform.
● Todavía no hay una versión estable.
● Los cambios para incluir campos custom se pierden al actualizar el módulo. (Sin
embargo si parece que se va a añadir soporte para campos personalizados en el
futuro.)
C) Webservice.
SugarOnDrupal
drupal.org/project/sugarondrupal
Nota: Este módulo está en una fase muy inicial de desarrollo. Sin embargo puede ser
muy útil para programadores puesto que realiza la conexión inicial y sirve también como
referencia para implementar nuevos servicios.
SugarOnDrupal permitirá compartir los usuarios de Drupal con SugarCRM actuando como
un portal de clientes. Los clientes o contactos podrán modificar los datos que se guardan en
el CRM.
SugarOnDrupal establece el enlace entre Drupal y Sugar y proporciona un API para ser
usado desde otros módulos.
Si aparece el mensaje “Got a valid session id. Both applications are now connected” ya
podemos realizar consultas a SugarCRM usando las funciones de SugarOnDrupal.
Un pequeño snippet de ejemplo que obtiene un array con la lista de IDs de todas las
cuentas:
<?php
$parametros = array(
'module' => 'Accounts' ,
'deleted' => false,
);
$respuesta = sugarondrupal_get_entry_list( $parametros );
print_r($respuesta);
?>
<?php
$parametros = array(
'module' => 'Accounts' ,
'id' => ‘6fb15bd9-1cd3-c0a9-a777-4cc1629238b0’,
'select_fields' => array( 'name', 'website' ),
);
Para crear una nueva cuenta en Sugar cada vez que se registra un usuario en Drupal,
podemos usar el módulo Rules y crear una acción que ejecute el siguiente código PHP:
<?php
$parametros = array(
'module' => 'Accounts' ,
'name_value_list' => array(
array( 'name' => 'name', 'value'=> $account->name ),
array( 'name' => 'email1', 'value'=> $account->mail )
),
);
sugarondrupal_set_entry( $parametros );
?>
Limitaciones de SugarOnDrupal
● Actualmente solo está disponible una versión de Desarrollo.
● Por ahora solo soporta el protocolo REST, por lo que es necesario Sugar 5.5 o
superior. (En el futuro parece que está pensado que soporte también SOAP)
● Por ahora, no tiene mucha utilidad por si solo aunque si puede funcionar como base
para otros módulos.
Reconocimiento-CompartirIgual 3.0