Search: TCO

CRM Goes to School, Supports Enrollment Growth

by C.R. Matín on June 30, 2011

At Post University in Waterbury, CT, the focus is on the student. Generally, the first interaction from a potential student is a lead, which can come from a variety of sources. Any delay in following up with the interested student (the lead) affects the conversion success rate, i.e., the likelihood of enrollment. By implementing Oracle CRM On Demand, Post University automated the admissions process so the admissions counselors are in direct contact with the students and eliminated many manual steps. The admissions and marketing teams, as well as the students, benefit from the new streamlined process.

Up next, Post University, plans to increase the efficiency of the student retention processes with the expansion of Oracle CRM On Demand.

Take a look at the video to learn more about Post University's Oracle CRM On Demand implementation:

Congrats to Post University, and Apex IT, their implementation partner, on the successful implementation!

{ 0 comments }

HOWTO: Add a new item to the Shortcut Bar

by C.R. Matín on May 31, 2011

Extending the Shortcut Bar is actually  a really easy customization that can be a huge convenience.

In the following example, we’ll add a button than opens a Google search window that searches for the name of the current record.

In the code base, the Shortcut Bar is referred to as the Dashlet Container Menu Bar. We will start by defining a new Extension that will add a new dynamic menu item to the DCMenu Bar. The file should be created in custom/Extension/application/Ext/DashletContainer/Containers/googleMenuItem.php with the following contents:

After adding the above extension, a quick repair will add the new button to the Shortcut Bar. However, in order to get Google to show, we will need to add the custom action used by the menu item. Adding the contents below to a custom php file called showGoogle.php in the custom/modules/Home directory will do the trick.

http://gist.github.com/981886

This certainly isn’t a production ready feature, but it should get you started on your own menu items.

{ 0 comments }

International Highlight: Dealing With Two Surnames

May 25, 2011

Today’s guest blogger is CRM MVP Leon Tribe. You can follow him on his blog, Leon’s CRM Musings. Quieres este articulo en Castellano? Aqui lo es: http://www.elblogdedynamicscrm.com/post/2011/05/10/Trabajando-con-dos-apellidos.aspx While uncomm…

Read the full article →

Recover your deleted CRM data and recreate them using CRM API

May 23, 2011

Have you ever lost some your business records in Microsoft Dynamics CRM by accidently deleting them? Are you wondering how to recover them re-create them in CRM, without having to go through much of the tedious manual efforts.

Prior to Microsoft Dynamics CRM 2011, we used the “soft-delete” method, where when someone deleted a record, the record will not be actually deleted from the database immediately. Instead the record would be internally marked with IsDeleted = true, and there will be a CRM Deletion Service which will run an Asynchronous System Job once a day, which would actually pick up the records marked with IsDeleted = true and actually delete them from the database. So you could have used workarounds to recover the recently deleted data if it had not yet been deleted by the Deletion Service.

With CRM 2011, there are no more soft deletes in CRM, the record is actually deleted from the database right away. So, this becomes important than ever before. But CRM has the very powerful “Auditing” capability. Provided, you had Auditing turned on for those records, you can look at the Audit logs and find out all the changes that happened on your record including the deletion.

In this blog, I am going to walk you through a simple way with which you can use Audit logs to recover your lost data and recreate them in CRM. Of course, there will be minimal manual effort involved, but since we are using the CRM API for most of the recovery/re-creation work, this will definitely save you a lot of time, especially if you have a heavy volume of records you want to recover.

How do I find the Audit record I need to recover

In the web application, go to Settings->Auditing->Audit Summary View.

You can use the various filters and find the atleast one audit record for the entity you want to recover. Right click the audit record, and say copy a link. This copies the url to Audit Record including the Id. Paste the contents into clipboard, and you can find out the Id of Audit record.

How do I use the sdk to re-create the entity from the Audit record:

Once you have the Audit record’s Id, you can use the following code that uses the CRM API

// _service is the OrganizationService. // Please refer to the samplecodes in crm 2011 SDK on how to create this _service. // Guid of the Audit Record // E1CFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Audit Record in this example Guid auditId = new Guid("E1CFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); AuditDetail auditDetail= response.AuditDetail; Audit audit = (Audit) auditDetail.AuditRecord; EntityReference entityAudited = audit.ObjectId; Guid entityId = entityAudited.Id; string entityLogicalName = entityAudited.LogicalName; // Retrieve the audit records for entity. RetrieveRecordChangeHistoryRequest changeRequest = new RetrieveRecordChangeHistoryRequest(); changeRequest.Target = new EntityReference(entityLogicalName, entityId); RetrieveRecordChangeHistoryResponse changeResponse = (RetrieveRecordChangeHistoryResponse)_service.Execute(changeRequest); AuditDetailCollection details = changeResponse.AuditDetailCollection; for (int count = 0; count < details.Count; count++) { if(typeof(AttributeAuditDetail).Name == details[count].GetType().Name) { AttributeAuditDetail detail = details[count] as AttributeAuditDetail; // This is a safety check to verify // if the audit record is for the delete operation if(detail.NewValue == null && detail.OldValue != null) { Entity entity = detail.OldValue; _service.Create(entity); // The audit records are recorded in the order // from latest to older. So, it's ok to break since you've recreated // from the latest snapshot of the entity, just before deletion break; } } }

Instead, if you’re able to find exact audit record for the delete operation you want to recover, you can simply use the following code to recreate the record, instead of the code described above:

// AACFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Deletion Audit Record Guid auditId = new Guid("AACFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); _service.Create(response.AuditDetail.OldValue);

You can use the sdk calls to retrieve the id of the audit record itself without going through the web UI, but to keep this simple, in this example, I’ve used the web UI method to filter out the Audit records to find the one I need to recover. Also if you have a huge volume of data, this becomes handy and you can just find the AuditIds and add to a list and loop through them.

Hope this helps and makes your recovery of data a smooth experience!

Uma Anbazhagan

Read the full article →

SugarCRM Chef Cookbook Published

May 11, 2011

After delaying cleanup on the code for a week or two, I’ve published my cookbook for deploying SugarCRM CE using Opscode Chef. The cookbook utilizes the community cookbooks from Opscode for deploying the standard LAMP stack on a machine, grabs a copy of the latest stable build of SugarCRM CE from Github, and creates a [...]

Read the full article →

CRM 2011 Charts – Know the Real Potential ~ Part Deux

May 2, 2011

Hello readers, this post is in continuation of my ”Getting to Know Charts” blog series, where we discuss useful features of charts. In the introductory post of this series we learned how to create a 3D chart and a multi series chart. Let’s answer…

Read the full article →

Creating Custom Sample Data for CRM 2011 – Advanced

April 29, 2011

We learned how to create a simple sample data for Microsoft Dynamics CRM 2011 in the blog post titled Creating Custom Sample Data for CRM 2011. In this post, we will take a look at some of the more advanced sample data building techniques. Building a…

Read the full article →

Free White Paper: Four Effective Service Strategies that Drive Brand Advocacy

April 25, 2011

Did you know that customers who are happy enough to recommend a product or service to others – brand advocates – contribute an astonishing 25 times their lifetime customer value to the top line? The challenges facing customer service organizations…

Read the full article →

Free White Paper: Four Effective Service Strategies that Drive Brand Advocacy

April 25, 2011

Did you know that customers who are happy enough to recommend a product or service to others – brand advocates – contribute an astonishing 25 times their lifetime customer value to the top line? The challenges facing customer service organizations…

Read the full article →

Free White Paper: Four Effective Service Strategies that Drive Brand Advocacy

April 25, 2011

Did you know that customers who are happy enough to recommend a product or service to others – brand advocates – contribute an astonishing 25 times their lifetime customer value to the top line?
The challenges facing customer service organizatio…

Read the full article →