locked
Annoying user setting. RRS feed

  • Question

  • Greetings Everyone,

     

    A new setting with CRM 2011 where contacts are automatically created in the CRM system when tracking if they are not found is on for all users by default, is there any way to make sure this is off by default?

    In our CRM we have all our contact database and this function hinders our CRM system, it is beyond me why this function is on by default since this should be something people turn on if they need it, not the other way around.. Our CRM is now full of useless and repeated contact information, the same contact is inserted in one case 20 times, now I have to walk to every client to remove this setting and clean up the CRM system..


    Halldór Jóhannsson
    Wednesday, September 7, 2011 3:07 PM

Answers

  • In your outlook client go to the Personal Options for CRM and uncheck the box below.

    There is no way to make it default unchecked for each install, you will just need to make the change for each user after you install the outlook client.


    Steven Jennings | Microsoft Dynamics CRM Implementer | (CRM Blog: http://blog.aresgrp.com/crm/) | Certified in CRM 4.0 & CRM 2011. Affiliated http://www.aresgrp.com
    Wednesday, September 7, 2011 3:23 PM
  • Hi Halldor,

    I found how you can do it in Code. You can override everyones personal setting for the system.

    This is a piece of sample code that you could use to create an EXE to run every time you add a new users and it will update all users in the system.

    The AutoCreateContactOnPromote is the checkbox in the image above.

    I hope it helps. Anymore questions please let me know.

     

    static void Main(string[] args)
            {
                var getConnected = Connection.CrmOnlineConnection();
    
                var list = GetCrmUserSettings(getConnected);
    
                UpdateCrmProducts(getConnected, list);
    
            }
    
            public static List<UserSettings> GetCrmUserSettings(ServerConnection.Configuration serverConfig)
            {
                IOrganizationService _service;
                OrganizationServiceProxy _serviceProxy;
                List<UserSettings> userSetting;
    
                using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
                                                                    serverConfig.HomeRealmUri,
                                                                    serverConfig.Credentials,
                                                                    serverConfig.DeviceCredentials))
                {
                    // This statement is required to enable early-bound type support.
                    _serviceProxy.EnableProxyTypes();
                    _service = _serviceProxy;
    
                    // Create the OrganizationServiceContext object that will generate
                    // the IQueryable collections for LINQ calls.
                    var orgContext = new OrganizationServiceContext(_service);
    
                    userSetting = orgContext.CreateQuery<UserSettings>().ToList();
                }
    
                return userSetting;
            }
    
            public static void UpdateCrmProducts(ServerConnection.Configuration serverConfig, List<UserSettings> users)
            {
                IOrganizationService _service;
                OrganizationServiceProxy _serviceProxy;
    
                using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
                                                                    serverConfig.HomeRealmUri,
                                                                    serverConfig.Credentials,
                                                                    serverConfig.DeviceCredentials))
                {
                    // This statement is required to enable early-bound type support.
                    _serviceProxy.EnableProxyTypes();
                    _service = _serviceProxy;
    
                    // Create the OrganizationServiceContext object that will generate
                    // the IQueryable collections for LINQ calls.
    
                    foreach (var list in users)
                    {
                        var orgContext = new OrganizationServiceContext(_service);
    
                        list.AutoCreateContactOnPromote = 0;
    
                        orgContext.UpdateObject(list);
                        orgContext.SaveChanges();
                    }
                }
            }
    


    Steven Jennings | Microsoft Dynamics CRM Implementer / Developer
    Certified in CRM 4.0 & CRM 2011.

    CRM Blog: http://blog.aresgrp.com/crm/
    Affiliated http://www.aresgrp.com
    Wednesday, September 14, 2011 9:03 PM

All replies

  • In your outlook client go to the Personal Options for CRM and uncheck the box below.

    There is no way to make it default unchecked for each install, you will just need to make the change for each user after you install the outlook client.


    Steven Jennings | Microsoft Dynamics CRM Implementer | (CRM Blog: http://blog.aresgrp.com/crm/) | Certified in CRM 4.0 & CRM 2011. Affiliated http://www.aresgrp.com
    Wednesday, September 7, 2011 3:23 PM
  • Thank you for the response Steven,

    I know where to set this option, but my problem is to do it for all users in the CRM system, we have over 100 users and I am trying to avoid having to walk to every client and do this manually and also this might be forgotten for new users etc, I need a f.e. workflow solution that does this everytime a user is created or a way to do this in mass (It can be done directly in the SQL with a update command but I would like to avoid that.).

     


    Halldór Jóhannsson
    Wednesday, September 7, 2011 3:26 PM
  • I understand now sorry for the misunderstanding. Off the top of my head it would be the SQL script like you suggested.
    Steven Jennings | Microsoft Dynamics CRM Implementer | (CRM Blog: http://blog.aresgrp.com/crm/) | Certified in CRM 4.0 & CRM 2011. Affiliated http://www.aresgrp.com
    Wednesday, September 7, 2011 3:42 PM
  • Yeah I figured it would be something like that, I did not find it in CRM, Server settings or a way to edit the user settings with a workflow or something like that, I was hoping there was a magic registry setting or something like that. 8)
    Halldór Jóhannsson
    Wednesday, September 7, 2011 3:51 PM
  • As Steven has mentioned, until Microsoft publishes some administrator tools or makes more of these settings available in the web client, then the only option is to write a little .NET app to update CRM through web services (SQL scripts are much quicker and usually just as good but unsupported).

    Neil Benson, CRM Addict and MVP at Customery Ltd. You can reach me on LinkedIn or Twitter. Join over 10,000 other CRM professionals on the Microsoft Dynamics CRM group on LinkedIn.

    Wednesday, September 7, 2011 4:22 PM
    Moderator
  • P.S. English is a great language but sometimes a little ambiguous. When I read the subject "Annoying user setting", it didn't occur to me that you found the setting to be annoying, I thought you found the user to be annoying, and you were looking for a setting to make annoying users somehow less annoying :)

    Neil Benson, CRM Addict and MVP at Customery Ltd. You can reach me on LinkedIn or Twitter. Join over 10,000 other CRM professionals on the Microsoft Dynamics CRM group on LinkedIn.

    Wednesday, September 7, 2011 4:24 PM
    Moderator
  • And here I was hoping for a setting that would let me annoy users.  ;)
    The postings on this site are solely my own and do not represent or constitute Hitachi Consulting's positions, views, strategies or opinions.
    Wednesday, September 7, 2011 5:05 PM
  • Hehe good one Neil 8)
    Halldór Jóhannsson
    Thursday, September 8, 2011 2:28 PM
  • Hi Halldor,

    I found how you can do it in Code. You can override everyones personal setting for the system.

    This is a piece of sample code that you could use to create an EXE to run every time you add a new users and it will update all users in the system.

    The AutoCreateContactOnPromote is the checkbox in the image above.

    I hope it helps. Anymore questions please let me know.

     

    static void Main(string[] args)
            {
                var getConnected = Connection.CrmOnlineConnection();
    
                var list = GetCrmUserSettings(getConnected);
    
                UpdateCrmProducts(getConnected, list);
    
            }
    
            public static List<UserSettings> GetCrmUserSettings(ServerConnection.Configuration serverConfig)
            {
                IOrganizationService _service;
                OrganizationServiceProxy _serviceProxy;
                List<UserSettings> userSetting;
    
                using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
                                                                    serverConfig.HomeRealmUri,
                                                                    serverConfig.Credentials,
                                                                    serverConfig.DeviceCredentials))
                {
                    // This statement is required to enable early-bound type support.
                    _serviceProxy.EnableProxyTypes();
                    _service = _serviceProxy;
    
                    // Create the OrganizationServiceContext object that will generate
                    // the IQueryable collections for LINQ calls.
                    var orgContext = new OrganizationServiceContext(_service);
    
                    userSetting = orgContext.CreateQuery<UserSettings>().ToList();
                }
    
                return userSetting;
            }
    
            public static void UpdateCrmProducts(ServerConnection.Configuration serverConfig, List<UserSettings> users)
            {
                IOrganizationService _service;
                OrganizationServiceProxy _serviceProxy;
    
                using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
                                                                    serverConfig.HomeRealmUri,
                                                                    serverConfig.Credentials,
                                                                    serverConfig.DeviceCredentials))
                {
                    // This statement is required to enable early-bound type support.
                    _serviceProxy.EnableProxyTypes();
                    _service = _serviceProxy;
    
                    // Create the OrganizationServiceContext object that will generate
                    // the IQueryable collections for LINQ calls.
    
                    foreach (var list in users)
                    {
                        var orgContext = new OrganizationServiceContext(_service);
    
                        list.AutoCreateContactOnPromote = 0;
    
                        orgContext.UpdateObject(list);
                        orgContext.SaveChanges();
                    }
                }
            }
    


    Steven Jennings | Microsoft Dynamics CRM Implementer / Developer
    Certified in CRM 4.0 & CRM 2011.

    CRM Blog: http://blog.aresgrp.com/crm/
    Affiliated http://www.aresgrp.com
    Wednesday, September 14, 2011 9:03 PM
  • There is a tool out there on codeplex (http://crm2011usersettings.codeplex.com/) that although doesn't currently allow the 'create contact' flag to be set en masse, I'm sure if you make the request on the discussion page, the author might build it into the next version.
    Microsoft Certified Technology Specialist (CRM) GAP Consulting Ltd Microsoft Community Contributor Award 2011
    Wednesday, September 14, 2011 9:29 PM
    Answerer