Monday, April 20, 2020

Digital Transformation for Technical Assistance - Progressive improvement

Any good  that requires ordinary or extraordinary maintenance is managed by a specialized team, with the most desperate forms of engagement and skills. Technical assistance  plays an extremely important role in different contexts, and companies activate contracts for thousands of euros every year, to provide their customers with the highest quality in the service or product.
 Just to imagine all products named as "business critical", where a disservice is equivalent to a concrete loss of earnings (e.g. a cash register, pos ...).


How technology affects?



The digital transformation that is entering the world of classic technical assistance, with "remote assistance" solutions, through more or less advanced technologies, optimizing on-site assistance services.
We can make several examples of digital transformation in this context, but we will try to focus on two main concepts:

  1. highly specialized assistance: they allow to suggest complex and extremely delicate actions remotely;
  2. reduction of on-site actvities: they aim to reduce activities not linked to real issues but missed product skills;

If we analyze the first case, the reduction of skills and specialization of technicians in the area, through specialized and central teams, can be addressed with augmented reality tools or remote assistance.




The previous immage represents the evolution of a company that offers technical assistance services, highlighting how the skills (represented by the various colors) have been centralized in a remote team, thanks to the adoption of a new technology. In this specific case, the company aimed primarily at lowering local costs, due to the use of highly specialized resources and with a high turnover difficult to manage in an international context located in several countries.

There are several technological examples that cover this use case, I bring you a Microsoft product that I really appreciated for the evolution it is having.

Dynamics 365 Remote Assist

In order to understand better, the potentiality of the application, below a short product demostration:



In the second case, the use of technology can be effectively addressed even with less sophisticated products, which implement a point-to-point channel with the customer (see the direct arrow from CC to Customer, in the previous image).

If we consider classic retail contexts, for example a retail store that needs support on a product used daily, to make assistance effective and fast, it is necessary to evaluate the introduction of a simple and highly usable tool for the end user.

Furthermore, customer must be able to take advantage of the classic mobile channels, which are now an integral part of our lives.

In this context, the use of an advanced chat, capable of recalling the lines of the tools used for the whole social world, covers the scenario and provides the customer with rapid and effective assistance compared to an on-site intervention. An example that I would like to share, is based on the use of a well-known product in terms of chat channel. This product need only few customizations, in order to covers the simple scenarios that have a final contact point, not highly specialized.

I speaking about Vivocha, a platform with a strong configuration features and the possibility of integration with the best social channels.  A web console allows the call center agents to monitor and hire customers.



Progressive improvement


Based on previous considerations, purchasing or building an assistance service (today or in the near future), must consider, in addition to the classic dimensions (average time for resolution of intervention, SLA, penalties ...), the technologies used.

In fact, the latter defines a new index “PI"  (progressive improvement) which affects the basic parameters as a multiplier. The parameter is closely linked to the technologies and processes used in technical assistance, and can vary based on the products or areas covered. Monitoring this index allows companies, which already use advanced techniques internally or through external support, to check the evolution of the service with a different perspective.

A supplier or a company that offers technical assistance services, must not only promise quality and rapid on-site assistance times in the short term, but must present a plan of progressive evolution that allows his customers to understand, what results they will get from the adoption of the service.

Tuesday, April 2, 2019

Scanner Control in Dynamics 365

Dynamics 365 introduced a new control for native mobile capabilities like read barcode value using.

Mobile app is configurable to use Scanner controller, in order to manage bar code information.

In the following link you can find all information about the backend configuration:

https://community.dynamics.com/crm/b/crminogic/archive/2017/01/13/read-barcode-value-using-barcode-scanner-control-in-dynamics-365

It reads the barcode and sets the barcode value in the respective field



 After clicking on the Barcode Scanner icon, it will redirect to the Barcode Scanning screen




Tuesday, December 8, 2015

MSCRM 2016 - Knowledge article lifecycle


By: The Microsoft Dynamics CRM Team Blog
The introduction of the Knowledge Article entity in Microsoft Dynamics CRM 2016 comes with many new and exciting features designed to bring strong knowledge management capabilities into Dynamics CRM. I am excited to explain a little bit more about the lifecycle, which is a key concept in the new Knowledge Article entity. I will cover the newly introduced states, roles, and privileges in the new knowledge management feature. Let’s get started!
Knowledge Article is a new entity introduced in Microsoft Dynamics CRM 2016 to bring knowledge management capabilities into services organizations. There is support for rich content authoring, versioning, translations, and other features designed to empower organizations to better capture, maintain, and incorporate knowledge into every aspect of their organization. For a full outline of all capabilities introduced with Knowledge Article, see:
A knowledge lifecycle walkthrough
In a typical organization, a knowledge lifecycle could be covered by several different teams (customer service representative, content authors, and content reviewers) and might look something like this:
  • A customer service representative resolves a case and proposes a Draft version of a knowledge article.
  • The customer Service representative submits the knowledge article for review by an approver.
  • The approver approves the article, which sets the article into the Approve State. 
Figure 1. The confirmation dialog for Approve command
  • The publisher reviews the approved knowledge article and sets the publish date and expiration date for the article, and also specifies whether publishing should cascade to allapproved translations. Figure 2. Publish dialog options
  • The publisher moves the article into scheduled state for publication.
  • A system job moves the scheduled article to the Published state on the specified publishing date.
  • The knowledge article is now consumable based on the permissions set.
 
Figure 3. Homepage grid displaying Published Articles view
  • A system job moves the published article to the Expired state on the specified expiration date.
  • A content reviewer moves the article to the Draft state and provides feedback on revisions needed.
A knowledge article may go through many revisions, approvals, and reviews in the lifecycle. In many cases, after a knowledge article is expired, it goes back through the process of additional approvals to be republished. This flow is depicted in the below cycle: 
Figure 4. Simple lifecycle flow for a knowledge article
While this illustration is a very high-level view of the actions that take place throughout the lifecycle of an article, it does capture the essence of each stage in the process. The knowledge article may eventually reach a point where it no longer needs to be published. The knowledge article can then be archived or discarded according to business preferences.
There are two notable additions to the process of knowledge management: versioning and translations of Knowledge Articles. These are explained in more detail here:
State-based modeling
Knowledge articles will be leveraging the underlying State Code concept in CRM to provide a modeling of the many states a knowledge article could be in within the Lifecycle. Below are the new state codes that are introduced as part of the knowledge article entity:
State Code
Status Codes
Permission Required
Draft
Proposed, Draft, Needs Review, In Review

Approved
Approved
Approve Knowledge Articles
Scheduled
Scheduled

Published
Published, Needs Review, Updating
Publish Knowledge Articles
Expired
Expired, Rejected

Archived
Archived

Discarded
Discarded, Rejected

 Table 1. Out-of-the-box state codes and information
The above table defines the out-of-the-box status codes that are associated with each state code and denotes the special permissions required to enter a state code (if applicable). In this section, I’ll touch on the new business process flows, how to transition through the various states, and each of the state code’s intended usage scenarios.

Business process flows

The knowledge article provides two out-of-the-box business process flows that will walk users through the basic lifecycle of a knowledge article. There is one for knowledge articles, which starts at the Draft State and walks the user through the necessary stages to have a knowledge article published. You’ll notice that the Active stage of the process (depicted below) has several steps that require completion before moving to the next stage in the process. The processes are designed to help a user go through the correct steps for publishing. You can change the states by using the command bar buttons, which are explained further below. 
Figure 5. New knowledge article business process flow
The second process is for knowledge articles that have expired and need to be reviewed and sent back through the lifecycle for publishing. The new knowledge article process is automatically transitioned to the expired process once the knowledge article has expired. The Process will revert to the new knowledge article process once the knowledge article has been reverted to the Draft state.

Changing states

Transitioning states from the interactive service hub is performed through the command bar buttons, which are present above the editing area. Only state transitions that are valid for the current context are presented on the command bar. 
Figure 6. Where to change the state of a knowledge article
It’s always easy to know which state a knowledge article is in at a glance in the interactive service hub. Take a look at the notification bar at the bottom to see this. 
 
Figure 7. Footer depicting current status of a knowledge article
You can also set the status reason within each state to provide more detailed insight into the current state of the knowledge article. You can do this in the header of the knowledge article form. 
Figure 8. Changing the status reason for a state

Quick overview of the states

  • The Draft state is where new knowledge articles are born! Proposed articles, drafts, and articles needing review are Draft knowledge articles. All newly created knowledge articles are in Draft state and require Create permissions to create a new article.
  • Approved state is for knowledge articles that have been reviewed and marked as Approved. Note that one requires a special “Approve Knowledge Articles” permission to approve an article.
  • Scheduled state is for knowledge articles that have been scheduled for publishing and that are picked up automatically by the auto-publish job when the publish Date/Time has reached.
  • Published state is for knowledge articles that are marked for consumption either internally or externally based upon the permissions set for the knowledge article.
  • Expired state is reached when knowledge articles reach their set expiration date and the desired expiration state is marked as Expired. These knowledge articles should be reviewed to determine if they need to be updated, republished, or archived based on business needs.
  • Archived state is for knowledge articles that don’t currently serve a business case but have some value that should be preserved.
  • Discarded state should be used for knowledge articles that are okay to delete. This serves as a symbolic recycle bin for knowledge articles to be deleted.

Roles and permissions

There is a quick callout regarding permissions that I would like to highlight. There is an entirely new Security Role added called Knowledge Manager. There are also two new permissions introduced specifically for knowledge article. Let’s look at both of these in more detail.

Knowledge Manager role

The Knowledge Manager is the security role defined for a user who is designated as the curator of knowledge management. This security role has the Create, Approve, and Publish permissions on knowledge articles for consumption. If this level of permission is not suitable for your organization’s needs, they can be tailored. Find more details on editing security roles here:

Knowledge article privileges

We have also introduced two new privileges for the Knowledge Article entity, which allow for fine-tuning control over who is allowed to both approve and publish knowledge articles. By default, the Knowledge Manager role has both these privileges. In the following figure, you can see the newly introduced privileges. 
Figure 9. Knowledge article privileges for the Knowledge Manager role
This role should only be assigned to users that require both the ability to approve and publish knowledge articles. Another use case for many businesses would be to define two separate security roles to effectively define a separation of privileges: one role having permissions to approve and other for having permission to publish knowledge articles. 

Saturday, May 23, 2015

CRM 2013 - ExecuteAsync Importing large or Complex solutions

In Dynamics CRM 2011 you were only able to import solutions synchronously. This means that the caller had to wait until the solution import process completes. This resulted in time out errors when importing large or complex solutions. Customers had to increase their time out settings significantly for on-premise deployments.

In Dynamics CRM 2013, the “ExecuteAsync” message solves this problem. 

I implemented for this post an example that show this functionality through a console application.
// Comment
static void Main(string[] args)
        {
            #region console in
            Console.WriteLine("---------------IMPORT ASYC SOLUTION CRM 2013 -------------------");
            Console.WriteLine(" v 1.0                                                          ");
            Console.WriteLine(" Autore: Nicola Grillo                                          ");
            Console.WriteLine(" ModifiedOn: 24/05/2015                                         ");
            Console.WriteLine("----------------------------------------------------------------");
            Console.WriteLine("");
            Console.WriteLine("");
            var esempioURL = "Url=http://XXXXXXXXX/yyyy; Domain=XXXXXX; Username=n.grillo; Password=XXXX001;";
            Console.WriteLine("(I) INSERIRE LA STRINGA DI CONNESSIONE CRM");
            Console.WriteLine("");
            Console.WriteLine("(I) ESEMPIO: " + esempioURL);
            Console.WriteLine("");
            Console.WriteLine("");
            var consoleConnectionString = ReadFromConsole(""); 
            Console.WriteLine("");
            Console.WriteLine("");
            var esempioPath = "C:\\Users\\n.grillo\\Desktop\\DynamicsCRMEasySolutionImporter_1_0_0_0.zip";
            Console.WriteLine("(I) INSERIRE IL PATH DELLA SOLUTION");
            Console.WriteLine("");
            Console.WriteLine("(I) ESEMPIO: " + esempioPath);
            Console.WriteLine("");
            Console.WriteLine("");
            var consolePathSolution = ReadFromConsole("");
            #endregion

            var connection = CrmConnection.Parse(consoleConnectionString);
            var service = new OrganizationService(connection);
            var context = new CrmOrganizationServiceContext(connection);
            
            IOrganizationService sdk = (IOrganizationService)context;
            ExecuteAsyncRequest request = new ExecuteAsyncRequest
            {
                Request = new ImportSolutionRequest
                {
                    CustomizationFile = File.ReadAllBytes(consolePathSolution),
                    PublishWorkflows = true,
                }
            };
            
            ExecuteAsyncResponse response = (ExecuteAsyncResponse)sdk.Execute(request);
            
            #region console
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Importazione inviata con successo");
            Console.ReadKey();
            #endregion
        }

        const string _readPrompt = "Dynamics CRM 2013 console> ";
        public static string ReadFromConsole(string promptMessage)
        {
            // Show a prompt, and get input:
            Console.Write(_readPrompt);
            
            return Console.ReadLine();
        }


Here you can find the result Console Application

Nicola Grillo

Thursday, October 24, 2013

Scribe - Support for Dynamics CRM 2013 Online and On-Premise Connectors




Scribe has recently announced support for Dynamics CRM 2013 Online and On-Premise Connections.  Scribe has verified that Scribe Online is now compatible with Dynamics CRM 2011 and 2013.  For this update, all Scribe Online Agents (both On-Premise and Cloud) will be automatically upgraded to version 1.0.0.40425.                                                                                                                                                                                            Note: For existing users, Scribe Online automatically updates your Scribe Online Agent within 3 hours of the Update. During this 3-hour period, if the Agent displays as “out-of-date” on the Scribe Online Agents page, you must restart the Scribe Online Agent Service before creating or editing any Solution Instances.  For information about Scribe Online Agent updates, see Updating an Agent in the Scribe Online Help Center.









Microsoft Dynamics CRM 2013 - User Experience Overview

Wednesday, September 4, 2013

CRM 2011 - Get Fetch in Advanced Find form by javascript

function GetFetch() {
try{
//get FetchXML
var advFind=_mainWindow.$find("advFind"), iOldMode = advFind.get_fetchMode();
var sFetchXml=advFind.get_fetchXml();

//get related information
var FetchXml = sFetchXml;
var LayoutXml= FetchXml.LayoutXml;
var EntityName = FetchXml.EntityName;
var DefaultAdvFindViewId= FetchXml.DefaultAdvancedFindViewId;
var ViewId = FetchXml.QueryId;
var ViewType= FetchXml.QueryObjectType;

//your code
} catch (err) {
                txt = "There was an error on this page.\n\n";
                txt += "Error description: " + err.message + "\n\n";
                txt += "Click OK to continue.\n\n";
                alert(txt);
}

}

Monday, July 8, 2013

MS CRM 2011 - Manage the parent customer field of a contact


The following code set the paterent customer in contact entity. I was unable to find any documentation of this, I hope this will be helpful for you.
// Comment

//for contact entity
EntityReference myRef = null;
myRef= new EntityReference("contact", (Guid)myContact.ContactID); 
if (myRef != null) contactEntity["parentcustomerid"] = myRef; 
// Commit entity to CRMGuid 
Guid result = service.Create(contactEntity);

//for account entity
EntityReference myRef = null;
myRef= new EntityReference("account", (Guid)myContact.AccountID); 
if (myRef != null) contactEntity["parentcustomerid"] = myRef; 
// Commit entity to CRMGuid 
Guid result = service.Create(contactEntity);




Thanks 
Nicola Grillo

Thursday, March 21, 2013

MSCRM 2011 - Exporting Security Roles (PDF,EXCEL, Word, XML, JPG)



If you want to write some documents about Security Roles this post is right for you :-)!!!


I've developed a Reporting Services Report to export Costum Security Roles. Below you can see the export file, output by report.






Here you can find the report.


Note: This report need Administrator CRM DB Role.




Best Regards, 
Nicola

Tuesday, January 22, 2013

MSCRM 2011 - Cannot start CRM Email Router service



Solution 1
http://support.microsoft.com/kb/954522

Solution 2
  1. Update the Microsoft.Crm.Tools.EmailAgent.xml file.

    <?xml version="1.0" encoding="utf-8"?>
    <Configuration>
      <SystemConfiguration>
        <MaxThreads>50</MaxThreads>
        <MaxThreadExecution>600000</MaxThreadExecution>
        <SchedulingPeriod>1000</SchedulingPeriod>
        <ConfigRefreshPeriod>5000</ConfigRefreshPeriod>
        <ConfigUpdatePeriod>3600000</ConfigUpdatePeriod>
        <LogLevel>1</LogLevel>
        <ProviderOverrides>
          <CacheCapacity>1024</CacheCapacity>
          <PendingStatusDelay>300000</PendingStatusDelay>
          <SendingStatusDelay>1800000</SendingStatusDelay>
          <MaximumDeliveryAttempts>10</MaximumDeliveryAttempts>
          <EWSRetrieveMessageCount>10</EWSRetrieveMessageCount>
          <BatchSize>5</BatchSize>
          <RequestBatchSize>5</RequestBatchSize>
        </ProviderOverrides>
      </SystemConfiguration>
    </Configuration>

    Notes
    • By default, the Microsoft.Crm.Tools.EmailAgent.SystemState.xml file is in the following folder:
      C:\Program Files\Microsoft CRM Email\Service
    • By default, the Service folder is a hidden folder. To see this folder, you must change the Windows Explorer settings to display hidden files and hidden folders.
  2. Restart the Microsoft Dynamics CRM E-mail Router Service.

Best Regards, 
Nicola Grillo



Saturday, October 20, 2012

CRM 2011 - Excel Data Model Addin

This Excel Add-in provides a more efficient way to customize the CRM 2011 schema. Not only it is possible to explore the entity attributes in a excel sheet as many tools do, but at same time you can update and create new attributes directly from excel. All the features are available through buttons on the excel ribbon and a panel on the right of the sheet that shows all the entities.
The idea is to keep all the information of the crm entities in an excel sheet and use the sheet as source for customize a crm application with all the common utilities provided by excel. All the customizations are made using CRM web services reading the schema information from the excel sheets in a supported way. 
An excel sheet is far more faster than the classic crm web interface to manipulate entities , for example with crm excel add-in you can add option-set values in less time avoiding the annoying web interface.

This add-in works for any kind of CRM connections: on-premises , on-line office 365 and on-line live id connection.

ExcelSheet.png

The actual version allows to customize entity attributes and option set, I'm planning to improve some feature for example I'm going to add the solutions support and extend with relationship but for the moment all my effort is aiming to stabilize the current version.
 If you have any idea to improve this add-id please send me an email or use the discussion page.

Best Regards,

Nicola G.

Sunday, October 14, 2012

MSCRM 2011 - Entity statecodes and statuscodes

Below you can find all statecodes and statuscodes of the OOB Microsoft Dynamics CRM Entities.

Entity
Statecode
Statuscode
Account (account)
0 Active
1 Active
1 Inactive
2 Inactive
Activity (activitypointer)
0 Open
1 Open
1 Completed
2 Completed
2 Canceled
3 Canceled
3 Scheduled
4 Scheduled
Appointment (appointment)
0 Open
1 Free
2 Tentative
1 Completed
3 Completed
2 Canceled
4 Canceled
3 Scheduled
5 Busy
6 Out of Office
Article (kbarticle)
1 Draft
1 Draft
2 Unapproved
2 Unapproved
3 Published
3 Published
Campaign (campaign)
0 Active
0 Proposed
1 Ready To Launch
2 Launched
3 Completed
4 Canceled
5 Suspended
Campaign Activity (campaignactivity)
0 Open
0 In Progress
1 Proposed
4 Pending
5 System Aborted
6 Completed
1 Closed
2 Closed
2 Canceled
3 Canceled
Campaign Response (campaignresponse)
0 Open
1 Open
1 Closed
2 Closed
2 Canceled
3 Canceled
Case (incident)
0 Active
1 In Progress
2 On Hold
3 Waiting for Details
4 Researching
1 Resolved
5 Problem Solved
2 Canceled
6 Canceled
Case Resolution (incidentresolution, notcustomizable)
0 Open
1 Open
1 Completed
2 Closed
2 Canceled
3 Canceled
Contact (contact)
0 Active
1 Active
1 Inactive
2 Inactive
Contract (contract)
0 Draft
1 Draft
1 Invoiced
2 Invoiced
2 Active
3 Active
3 On Hold
4 On Hold
4 Canceled
5 Canceled
5 Expired
6 Expired
Contract Line (contractdetail)
0 Existing
1 New
1 Renewed
2 Renewed
2 Canceled
3 Canceled
3 Expired
4 Expired
Currency (transactioncurrency)
0 Active
0 Active
1 Inactive
1 Inactive
Discount (discounttype)
0 Active
100001 Active
1 Inactive
100002 Inactive
E-mail (email)
0 Open
0 Draft
8 Failed
1 Completed
2 Completed
3 Sent
4 Received
6 Pending Send
7 Sending
2 Canceled
5 Canceled
Fax (fax)
0 Open
0 Open
1 Completed
2 Completed
3 Sent
4 Received
2 Canceled
5 Canceled
Invoice (invoice)
0 Active
1 New
2 Partially Shipped
4 Billed
5 Booked (applies to services)
6 Installed (applies to services)
1 Closed (deprecated)
3 Canceled (deprecated)
7 Paid in Full (deprecated
2 Paid
100001 Complete
100002 Parial
3 Canceled
100003 Canceled
Lead (lead)
0 Open
1 New
2 Contacted
1 Qualified
3 Qualified
2 Disqualified
4 Lost
5 Cannot Contact
6 No Longer Interested
7 Canceled
Letter (letter)
0 Open
1 Open
2 Draft
1 Completed
3 Received
4 Sent
2 Canceled
5 Canceled
Marketing List (list)
0 Active
0 Active
1 Inactive
1 Inactive
Opportunity (opportunity)
0 Open
1 In Progress
2 On Hold
1 Won
3 Won
2 Lost
4 Canceled
5 Out-Sold
Order (salesorder)
0 Active
1 New
2 Pending
1 Submitted
3 In Progress
2 Canceled
4 No Money
3 Fulfilled
100001 Complete
100002 Partial
4 Invoiced
10003 Invoiced
Phone Call (phonecall)
0 Open
1 Open
1 Completed
2 Made
4 Received
2 Canceled
3 Canceled
Price List (pricelevel)
0 Active
100001 Active
1 Inactive
10002 Inactive
Product (product)
0 Active
1 Active
1 Inactive
2 Inactive
Quote (quote)
0 Draft
1 In Progress
1 Active
2 In Progress
3 Open
2 Won
4 Won
5 Out-Sold
3 Closed
5 Lost
6 Canceled
7 Revised
Service Activity (serviceappointment)
0 Open
1 Requested
2 Tentative
1 Closed
8 Completed
2 Canceled
9 Canceled
10 No Show
3 Scheduled
3 Pending
4 Reserved
6 In Progress
7 Arrived
Task (task)
0 Open
2 Not Started
3 In Progress
4 Waiting on someone else
7 Deferred
1 Completed
5 Completed
2 Canceled
6 Canceled


Best Regards,
Nicola G