MSCRM 4.0: Importar miembros de listas de marketing

12 04 2011

Una opción bastante demandada por los usuarios de Microsoft Dynamics CRM es la importación de miembros de listas de marketing. A menudo los usuarios desean exportar una segmentación de sus cuentas o contactos o lead a Excel y trabajar con herramientas externas la información de las mismas para terminar obteniendo un conjunto de registros que desean importar a una lista de marketing. La herramienta estándar de CRM no permite la importación de miembros de listas de marketing (ya que se trata de una relación, no de una entidad).

Para resolver este tema hemos desarrollado una actividad personalizada de workflow que nos permite indicar una cuenta y una lista de marketing y la actividad genera una nueva entrada para la cuenta (miembro)en la lista de marketing. Esta actividad la podemos usar en cualquier evento como por ejemplo en la creación de una cuenta, si queremos que todas las cuentas creadas se añadan a una lista de marketing (incluso podemos añadir cierta lógica en el workflow que añada las cuentas a distintas listas de marketing en función de ciertos parámetros de la cuenta…).

Tras registrar la nueva actividad de workflow podemos seleccionarla en la opción Agregar paso:

En el ejemplo comentado anteriormente, podemos crear un workflow que añada las cuentas creadas a una lista de marketing:

Al activar el nuevo workflow, creamos una nueva cuenta y observamos que se genera una nueva instancia del workflow que al rato nos asocia como miembro a la nueva cuenta en la lista de marketing seleccionada:

En el caso que nos ocupa, la importación de miembros de una lista de marketing, podemos crear una nueva entidad llamada Importación de miembros de listas de marketing con dos atributos, un lookup a cuenta y otro a lista de marketing. Seguidamente, creamos un workflow para el evento de creación de registro en la nueva entidad. De ese modo, cada vez que importemos un registro cuenta/lista de marketing, se creará un miembro en la lista de marketing correspondiente a la cuenta.

Como podeis suponer, esta actividad de workflow se podría complementar con la posibilidad de no sólo asociar cuentas sino también contactos y leads, controlar que la lista de marketing seleccionada se corresponde al tipo de entidad (cuenta, contacto o lead)… y muchas más ampliaciones. Si alguien se anima a completar el código, bienvenido sea!!!

Si deseáis disponer del código fuente (extremadamente simple) de esta actividad de workflow podéis solicitárnoslo a través de un comentario de este artículo al pie del mismo.

Anuncios

Acciones

Information

13 responses

12 04 2011
Albert Pòrrà

Por cierto, esta actividad personalizada de workflow también es compatible y aplicable a CRM 2011.

17 04 2011
Josep Romero

Ep, Albert… aixó ens fa falta com l’aigua de Maig. Ho parlem, ens faria molt més senzilla la vida.. ;)

19 04 2011
Toni Serrano

Bon dia Albert,

Em podries pasar el codi font de l’activitat de workflow per realitzar una prova.

Moltes gràcies.

19 04 2011
Albert Pòrrà

Toni, tan aviat com pugui t’ho envio per correu. Com veuràs es extremadament simple pero us pot servir moltíssim per a alguns dels requeriments que teniu. Fins aviat

12 05 2011
santiago

Hola que tal? podrias pasarme el codigo de esta actividad de workflow?

12 05 2011
Albert Pòrrà

Santiago,

¿Lo prefieres para CRM 4.0 o para CRM 2011? Saludos

7 06 2011
Veronica Tercero

Hola Albert,

Estaríem interessats en el codi ‘MSCRM 4.0: Importar miembros de listas de marketing’. Ens passa bastantes vegades de voler importar llistats tractats externament.
Gràcies!

16 06 2011
Albert Pòrrà

Serà un plaer mostrar-vos com funciona qualsevol dia que passi per les vostres oicines. Es tracta d’una activitat de workflow extremadament simple que podeu aplicar molt fàcilment. Si no tinc ocasió de passar per les vostres oficines puc explicar-vos-ho a través de Live Meeting. Fins aviat.

19 08 2011
Venox

Buenas,

¿Podrías facilitarme el código de esta actividad de Workflow para CRM 2011? A ver si puedo hacerlo para integrantes de tipo contacto que es lo que realmente me interesa.

Muchas gracias

6 09 2011
Albert Pòrrà

En primer lugar disculpa la demora en contestar. He estado de vacaciones y muy liado en la vuelta al trabajo.

La clase que he utilizado para MSCRM 4.0 (la puedes reaprovechar para CRM 2011 o bien adaptarla muy rápidamente) es la siguiente:


using System;
using System.Collections.Generic;
using System.Text;
using System.Workflow.Activities;
using Microsoft.Crm.Workflow;
using System.Workflow.ComponentModel;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.Sdk.Query;
using Microsoft.Crm.SdkTypeProxy;
using System.Web.Services.Protocols;
using System.Globalization;

namespace Qurius.MsCrm.WFActivity
{
[CrmWorkflowActivity("Añadir un miembro a una lista de marketing")]
public class AddMember : SequenceActivity
{
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
try
{
// Recupera servicio del contexto
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext context = contextService.Context;
ICrmService crmService = context.CreateCrmService();

// Añadir miembro a la lista de marketing
AddMemberListRequest add = new AddMemberListRequest();
add.EntityId = Cuenta.Value;
add.ListId = Lista.Value;
AddMemberListResponse added = (AddMemberListResponse)crmService.Execute(add);

Tools.WriteLog("Creado el miembro " + added.Id.ToString());
}
catch (Exception ex)
{
Tools.WriteLog("Error al crear miembro " + ex.Message);
}
return ActivityExecutionStatus.Closed;
}

public static DependencyProperty CuentaProperty = DependencyProperty.Register("Cuenta", typeof(Lookup), typeof(AddMember));
[CrmInput("Cuenta")]
[CrmReferenceTarget("account")]
public Lookup Cuenta
{
get
{
return (Lookup)base.GetValue(CuentaProperty);
}
set
{
base.SetValue(CuentaProperty, value);
}
}

public static DependencyProperty ListaProperty = DependencyProperty.Register("Lista", typeof(Lookup), typeof(AddMember));
[CrmInput("Lista")]
[CrmReferenceTarget("list")]
public Lookup Lista
{
get
{
return (Lookup)base.GetValue(ListaProperty);
}
set
{
base.SetValue(ListaProperty, value);
}
}
}
}

Si tienes alguna dificultad para utilizar el código, puedo enviarte el código a tu dirección de email.

Saludos.

6 09 2011
Albert Pòrrà

Por cierto, para hacerlo para inegrantes de tipo contacto tan sólo debes cambiar una línea de la propiesdad de entrada:


public static DependencyProperty CuentaProperty = DependencyProperty.Register("Cuenta", typeof(Lookup), typeof(AddMember));
[CrmInput("Cuenta")]
[CrmReferenceTarget("account")]
public Lookup Cuenta
{
get
{
return (Lookup)base.GetValue(CuentaProperty);
}
set
{
base.SetValue(CuentaProperty, value);
}
}

debes substituir el tipo CrmReferenceType de account a contact. Si quieres, puedes cambiar el nombre de la propiedad para que contenga el nombre contact…

Saludos

13 01 2013
Juegos

This is my first time visit at here and i am genuinely impressed to read
everthing at one place.

1 03 2013
projektowanie Strony www

I almost never drop comments, but i did some searching and wound up here MSCRM 4.
0: Importar miembros de listas de marketing | Prodware Advanced Solutions Blog.
And I actually do have a couple of questions for you if you do not mind.
Is it only me or does it appear like a few of the
responses come across as if they are coming from brain dead visitors?

:-P And, if you are posting on other places, I would like to follow
everything fresh you have to post. Could you list of the complete
urls of your public pages like your twitter feed, Facebook page or linkedin profile?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: