マイクロソフト Dynamics 365 カスタマーサービス は、企業がカスタマーサービス管理を最適化するためのツール群を提供します。このプラットフォームは、顧客体験を向上させるだけでなく、コミュニケーションや内部サポートプロセスの追跡を支援し、顧客だけでなく企業にも利益をもたらします。
しかし、マイクロソフトのDynamics 365カスタマーサービス・ポータルは便利ではあるが、独自の要件を満たすように構成するのは難しい作業である。
Connecting Softwareでは マイクロソフト Dynamics 365 カスタマーサービス を構築する。 サポートポータル.この記事では、Dynamics 365カスタマーサービスを導入して、サポートポータルを構築するプロセスを詳しく説明します。
Dynamics 365カスタマーサービス・ポータルの特徴
お客様がナレッジベースでお探しの答えが見つからない場合、Dynamics 365カスタマー・サービス・ポータルでは、お客様がサポートケースを作成することができます。お客様から見ると、この2つがサポートポータルの主な機能です。
しかし、我々にとっての主な利点は、サポート・ポータルと我々のソフトウェア・ソリューションの使用に関する情報を生成できることです。例えば、特定の製品に関する特定の問題について複数のケースが提出されていることに気づけば、その問題を迅速に解決するためにリソースを振り向けることができます。単なるFAQであれば、サポート・ポータルのナレッジ・ベースに追加して、同じ悩みを共有するすべての顧客が情報を利用できるようにすることができます。
そのため、Dynamics 365カスタマーサービス・ポータルは、製品の品質評価、顧客満足度の向上、顧客とのやり取りの追跡、継続的な改善を可能にする情報へのアクセスの保証、リソースプランニングの適応、さらには製品ごとのサポート費用など、貴重な内部レポートを作成するための一元化されたツールとして機能します。
それでは、サポート・ポータルを実装する際に直面した障害を見てみましょう。
発生 #1 - 既存顧客ベース
サポート・ポータルに取りかかったとき、既存の顧客ベースがあったことが厄介なことになりました。
顧客が当社のポータルに初めて登録するたびに、Microsoft Dynamics 365 (CRM)、つまり当社の顧客データベースに、重複した連絡先が作成されます。Microsoft Dynamics 365 for Customer Serviceは、重複した連絡先を顧客データベースの実際の連絡先にネイティブにリンクしないため、情報が1つのレコードに集中されません。そのため、サポートケースは、私たちが確立した関係を持つアカウントに関連付けられた連絡先にリンクされていませんでした。代わりに、サポートポータル登録の結果として作成された空の重複連絡先にリンクされていました。
この問題は、重複した連絡先をCRMの実際の顧客連絡先にうまくリンクさせる招待状を自動的に送信することで解決できたかもしれませんが、これは顧客ベースを立ち上げる最初から行わなければならないことです。それに、これは理論的にはうまくいくのですが、メールの開封率が低いため、現実的な解決策ではありません。Mailchimpによると、全業界の平均メール開封率は、わずか5%でした。 21.33% 2021年
また、記録をデフォルトで統合すれば十分だとお考えかもしれませんが、そうではありません。記録の情報を1つの連絡先に統合すると、サポートポータルへのアクセスが失われることになるからです。
解決策 - Dynamics 365プラグイン
これを解決する他の方法は、カスタム Microsoft Dynamics 365 プラグイン(Power Apps の世界ではソリューションと呼ばれる)を作成することです。私たちが作成したプラグインは、サポートポータルの登録時に、CRM にユーザーが既に存在しているかどうかをスキャンします。
2つの可能な結果があります:ユーザーが当社のデータベースに存在する場合、プラグインはこの一致を認識し、ユーザーがDynamics 365カスタマー・サービス・ポータル、つまり当社のサポート・ポータルへのアクセスを失うことなく、両方のレコードの情報を1つの連絡先に統合します。この時点で情報を含まない2つ目の連絡先は、私たちが構築したプラグインによって自動的に削除されます。このプラグインは、レコードを消去するために毎週別の一括削除ジョブを実行します。
ポータルにサインアップするユーザが当社のCRMに存在しない場合、プラグインは異なる処理を行います。B2B企業である当社のデータベース上の顧客のEメールには、所属する組織固有のドメインがあります。そのため、CRMに存在しないユーザーがポータルに登録したい場合、プラグインはCRMを検索してこの新規ユーザーのEメールドメインを探します。一致した場合、このユーザはすでによく知っている企業に属しているため、CRMに新しいコンタクトが自動的に作成されます。反対に、サポートポータルにサインアップする顧客のEメールドメインと当社のデータベースが一致しない場合、登録が試みられたことが社内に通知され、必要であればさらに情報を得るために連絡を取ります。
私たちのマイクロソフトDynamics 365プラグインのコードの一部は、次の方法で見つけることができます。 このリンク.ご自由にどうぞ。 てをのべる 完全版をご希望の方は、こちらまでご連絡ください!
public void Execute(IServiceProvider serviceProvider) { var tracingService = (ITracingService) serviceProvider.GetService(typeof(ITracingService)); var context = (IPluginExecutionContext) serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity)) { を返します; } var entity = (Entity) context.InputParameters["Target"]; var isLoginEnabled = HasLoginEnabled(entity); if (isLoginEnabled == false) { を返します; } トライ { var emailAddress = (string) entity["emailaddress1"]; var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress); if (contactsWithSameEmailAddress.Entities.Count > 0) { var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]); if (hasLoginEnabled) { throw new InvalidPluginExecutionException(OperationStatus.Failed、 "ユーザーはすでに存在しています。別のメールアドレスで登録するか、既存のアカウントにログインしてください。"); } var mergeRequest = new MergeRequest { SubordinateId = entity.Id、 Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id)、 UpdateContent = GetUpdateContent(entity) }; var _ = (MergeResponse) service.Execute(mergeRequest); entity[CustomAttributeName] = true; service.Update(entity)を実行します; } その他 { var domain = emailAddress.Split('@')[1]; if (_publicDomains.Contains(domain)) { SendEmailAndDeactivateContact(service, tracingService, entity); } else { var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain); if (contactsWithSameDomain.Entities.Count > 0) { entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"]; service.Update(entity)を実行します; } その他 { SendEmailAndDeactivateContact(service, tracingService, entity); } } } } catch (FaultExceptionクローズコードex) { throw new InvalidPluginExecutionException("An error occurred in ContactPostOperationPlugin.", ex); } }
ウェブショップ
発生 #2 - D365カスタマーサービスでのエラーメッセージ
Dynamics 365カスタマーサービスポータルに未登録のユーザーがログインしようとすると、誤解を招くエラーメッセージが表示されました。このメッセージは、電子メールがサポートポータルに登録されていないことを通知するのではなく、パスワードが間違っていることを示すものでした。
前回の話に戻りますが、ユーザがサポートポータルに登録すると、CRM に重複レコードが作成されます。ポータルに登録されていない顧客は、この重複したレコードを持たないため、ログインに関する情報を含む、システムが読み取るレコードがありません。システムが行うことは、CRMのフィールド「ユーザー名入力」を更新することです。これにより、Microsoft Dynamics 365カスタマーサービスは、ユーザーがすでにログインしていると判断し、パスワードが間違っているというメッセージを表示します。
解決策 - Dynamics 365プラグイン
既存の顧客データベースがある場合の解決策と同じように、このエラーメッセージに対処する最善の方法は、マイクロソフトのDynamics 365プラグイン/ソリューションを使用することでした。
実際、私たちはすでに持っていたのと同じDynamics 365プラグインを使いましたが、少し手を加えただけです。これは基本的に、「ユーザー名入力」フィールドに何も情報がないときに、システムが更新することによって発生するエラーを特定し、停止させるコマンドです。このプラグインステップは、ポータルにアクセスしようとするユーザーに表示されるエラーメッセージを修正し、「パスワードが間違っています」という代わりに、「サポートポータルにログインしていません」と表示します。
著者について
記入例 ディオゴ・グーヴェイア
"英国での留学を終えた後、Connecting Softwareのマーケティングチームに参加し、ソフトウェアインテグレーションやその他様々なITトピックに関するコンテンツを作成しました。お気づきの点やご提案があれば、ぜひお声掛けください。"