Show all cases for the Account to the associated contact on ADX Portal.

This blog is intended to show all cases for the Company (Account) of logged-in user (contact) on ADX portal.

Many times we come across scenarios, such that the logged-in Portal user (CRM Contact) should be able to see all the cases of the Company, logged-in user belongs.

There are 2 aspects for implementing this approach:

  1. Viewing all cases for the company.
  2. Creating case for the company instead of contact.

Viewing all cases for the company

We can view all cases for the company by following below steps:

  • Navigate to Settings -> Case Access Permissions in CRM as below:
    ADX - Case access permission
  • Click on “New” button to create new Case Access permission for the portal user.
  • Provide details for the Case access permission record:
    ADX - New Case access permission

Name: Name for the Case access permission.

Account: Company of portal user.

Contact: Portal user for whom we are creating Case access permission.

Scope: Select scope for the case access permission as ‘Account’

Permission: Select necessary permissions to be given for portal user.

  • Click on Save.

Creating case for the company instead of contact.

By default when a case is created from portal, Customer field on case record is set to logged-in user (contact). However we want to set the Company for the logged-in user as ‘Customer’ and logged-in user as the ‘Contact’ field on Case.

We can achieve this by making change in solution code as below:

Changes in OnItemInserting function as below:

protected void OnItemInserting(object sender, CrmEntityFormViewInsertingEventArgs e)

{

var customerDropdown = (DropDownList)CreateCaseForm.FindControl(“FormView”).FindControl(“CustomerDropdown”);

if (customerDropdown == null)

{

e.Values[“customerid”] = Contact.ToEntityReference();

e.Values[“primarycontactid”] = Contact.ToEntityReference();

}

else

{

Guid customerId;

if (Guid.TryParse(customerDropdown.SelectedValue, out customerId))

{

var customerLogicalName = customerId == Contact.Id ? “contact” : “account”;

var customer = new EntityReference(customerLogicalName, customerId);

 

if (Contact.Attributes.Contains(“parentcustomerid”))

{

var parentcustomerid = Contact.Attributes[“parentcustomerid”];

e.Values[“customerid”] = parentcustomerid;

 

var contactRef = new EntityReference(“contact”, Contact.Id);

e.Values[“primarycontactid”] = contactRef;// customer;

}

else

{

e.Values[“customerid”] = customer;

}

}

}

if (!e.Values.ContainsKey(“customerid”))

{

e.Values[“customerid”] = Contact.ToEntityReference();

}

if (!e.Values.ContainsKey(“responsiblecontactid”))

{

e.Values[“responsiblecontactid”] = Contact.ToEntityReference();

}

e.Values[“adx_createdbyusername”] = Contact.GetAttributeValue<string>(“fullname”);

e.Values[“adx_createdbyipaddress”] = Request.UserHostAddress;

}

 

Adding CRM forms on ADX Portals:

This blog is intended to make understand how we can use a CRM form on ADX portal using Entity form.

Prerequisite:

  • CRM environment.
  • Licensed ADX portal.

 

Steps for Adding CRM forms on ADX Portals:

Create new CRM form in CRM:

  • Login to your CRM organization.
  • Go to Setting -> Customization -> Customizations -> Customize the System.Customizations
  • Go to entity for which form wants to be created.
  • Click on New -> Main form.

Main From

  • Add fields on the form and save.
  • Publish the solution.

 

Create Entity forms:

  • Click on elipses in CRM and go to Portals -> Content -> Entity Forms.
  • Click on New.
  • Provide name for the entity form.
  • For Entity Name, Select the entity for which we want to add form on Portal.
  • For Form Name, select newly created form for the entity.

New Entity Form

  • Click ‘SAVE & CLOSE’.

Add Entity Form on Portal:

  • Go to portal URL.
  • Sign-in to the portal using Administrator credentials.

           Default administrator credentials:

          Username: administrator

          Password: pass@word1

  • After Signing-In, User gets panel to make CMS changes as below.

Administrator panel

  • Navigate to Page for which we want to add newly created Entity form (CRM form) as child page.
  • On the Panel click on “New -> Child Page”

Administrator panel 2

  • A new window will pop-up, where we need to provide Child page details as below:

Name (required): Name for the web page.

Title: Title for the web page.

Parent Page (required): By default it will be page for which we are creating child page. However we can change it.

Partial URL (required): Partial URL for the page. By default it will be name of the page in lowercase and without spaces (Spaces will be replaced by ‘-‘).

Page Template (required): Page template for the web page.

Publishing State (required): Publishing state of the page (Draft or Published). Draft web pages will not be displayed on the portal.

Web form: Web form for the web page.

Entity form: Select entity form we created.

Entity List: Entity List for the web page.

 

Since we are creating Entity form, we can leave Web form and Entity List fields blank.

Entity Form config

  • Click on Save.

 

Sending recurring reminder emails using CRM tasks.

We often have need to send recurring reminders to our users, customers from CRM. We can do it using below solution wherein we will create a task for the reminder. Deletion of which will send out a Reminder Email. For deletion of task we will create a Bulk Delete task, which will run in recurrence.

So basically for setting it up we need to do 3 steps:

  • Create a task for Reminder.
  • Create a workflow to send Reminder email.
  • Create Bulk delete task to delete the Reminder task.

Create a task for Reminder.

  1. Add a new field to Task entity, ‘Reminder’ which will be Two Options.
  2. Add new Task activity with name ‘Daily Reminder Task’ and set Reminder field for the same as ‘Yes’ as in below image:

1

Create a workflow to send Reminder Email.

  1. Create a new workflow on deletion of Task record.
  2. Set the properties for the workflow:
  3. Check if the Reminder flag for the Task is set to ‘Yes’.
  4. Check subject of the Task to match your reminder task. In our case ‘Daily Reminder Task’.
  5. Send Mail to intended public.
  6. Re-Create the Task activity with the same name as your reminder task. In our case ‘Daily Reminder Task’.

Refer below image:

2

Create Bulk delete task to delete the Reminder task.

  1. Create Bulk delete task to delete your Reminder Task. In our case ‘Daily Reminder Task’.
  2. Set deletion criteria for the entity.

3

  • Set scheduling and notification options.

4

  1. Submit the job.

Integrating Parature Knowledge Base with Dynamics CRM

The purpose of this blog is to help integrate Dynamics CRM online with Parature Knowledge Base(KB). By integrating Parature KB with CRM, Users will be able to access the Articles in created in Parature without changing the applications.

Pre-Requisite:

  1. CRM Online with Spring release update
  2. Parature Enterprise license
  3. Parature account under same O365 tenant as CRM online

Purpose of Integration:

Parature provides well developed platform for handling service desk for customers. One of the many features provided by Parature is Knowledge Base(KB).

Steps to integrate Dynamics CRM with Parature:

  • Configurations at Parature end:
    1. Add your CRM organization to the list of allowed URLs in CORS setting in Parature:
      1. Go to Setup -> Department Management -> CORS Settings.
      2. Add your CRM organization URL.

Untitled picture

  • Configurations at CRM end:
    1. Setup Knowledge Management:
      1. Go to Service Management under Settings as below:
      2. Untitled picture1
        Select Set Up Knowledge Base Management under “Knowledge Base Management” section.
      3. Knowledge Management Settings Window pops up as below:

Untitled picture2

Record Types: The list shows all entities available for N:N relationship. When enabling Parature integration for an entity, a many-to-many relationship is created between the entity and the ‘Knowledge Base Record’ entity. Select the record types for which you want knowledge management to be turned on. By default Case entity has Knowledge management enabled.
Parature Instance: Dropdown list will give list of Parature instances that can be connected to. Select the Parature instance to be connected to.
Parature URL: This is selected automatically on selecting the Parature Instance.
Account ID: This is selected automatically on selecting the Parature Instance. It shows ID of the Account.
Parature Department ID: Specify the Department ID for which the Parature instance is setup. We must specify this properly since every Department in Organization can have their own knowledge base. We need to specify the Department ID of the department to whose Knowledge base we need to connect.
To find the department ID, log on to Parature using Administrators login credentials, select System Overview from Setup tab. Note: You will be able to see the Setup tab only if you have Administrator permissions.
Untitled picture3
Support Portal URL:  Specify the URL of Support Portal. Support portal URL can be checked from Parature by clicking on ‘My Portal’ option on upper right hand side. Select the URL.
Untitled picture4
iv. Click Next.
v. Verify the Details and click Finish.

Using Parature Knowledge Base in Dynamics CRM:

After integrating Parature Knowledge Base (KB) with Dynamics CRM online, We can access the Knowledge Articles created in Parature in CRM.
For Case entity, by default we get KB Articles Section which auto searches the knowledge base:

Untitled picture5