Blog

Technische Informationen rund um das Thema Modernes Arbeiten

Monat: März 2018

Create PhoneCall in Microsoft CRM

In den letzten Tagen und Wochen habe ich mich intensiv damit beschäftigt, wie man das Zusammenspiel zwischen Microsoft CRM und Skype for Business noch besser zusammen bekommen kann. Zwar gibt es Lösungen auf dem Markt – allerdings wollte ich wissen, wie gut die APIs und auch die Dokumentation zu den APIs sind. Nach vielem Suchen und Lesen habe ich es nun geschafft, aus einer Anwendung heraus, die das Lync SDK nutzt, um Telefonanrufe zu erkennen und die SIP-Adresse auszuwerten eine PhoneCall-Activity in Microsoft Dynamics CRM Online zu erstellen und einem Contact zuzuweisen. Grundsätzlich eigentlich kein großes Ding, aber wie immer liegt das Problem im Detail verborgen – ich bekam immer bei den Eigenschaften “From” und “To” einen Ausnahmefehler (System.InvalidCastException)…

Daraufhin begann die Suche – ich habe viele Artikel zum Thema, wie der Aufruf zum Eintrag einer PhoneCall-Activity aussehen sollte. Letztendlich bin ich bei 2 Artikeln hängen geblieben, die in der Summe zur Lösung beigetragen haben:

https://community.dynamics.com/crm/b/magnetismsolutionscrmblog/archive/2015/09/07/working-with-dynamics-crm-activity-party-lists-in-c-plugins

https://community.dynamics.com/crm/b/crmcondition/archive/2015/10/02/how-to-set-the-regarding-and-from-fields-on-a-phone-activity

Daraus entstand nun meine Lösung:

<csharp>

EntityReference _custRef = new EntityReference(“contact”, _id); // Entity-Refence des Kontaktes

Guid _userid = ((WhoAmIResponse)_service.Execute(new WhoAmIRequest())).UserId; // Systemuser ID auslesen

Entity _pcall = new Entity(“phonecall”); // neue Aktivität anlegen

Guid _pcID = _service.Create(_pcall);

</csharp>

In diesem Teil wurden eigentlich nur die entsprechend notwendigen GUIDs gelesen bzw. erzeugt.

Im nächsten – für mich spannenden Teil – werden nun die beiden EntityCollections erzeugt, die die Einträge für <From> und <To> (d.h. wer hat angerufen und wen hat er gesprochen) erzeugt werden.

In den unterschiedlichen Versuchen bekam ich immer einen Fehler bei den Eigenschaften <From> und <To>. Hier habe ich nun die Lösung von Magnetism  übernommen:

<csharp>

Entity _party1 = new Entity(“activityparty”);

_party1[“partyid”] = new EntityReference(“contact”, _id);

EntityCollection _from = new EntityCollection();

_from.Entities.Add(_party1);

Entity _party2 = new Entity(“activityparty”);

_party2[“partyid”] = new EntityReference(“systemuser”, _userid);

EntityCollection _to = new EntityCollection();

_to.Entities.Add(_party2);

</csharp>

Mit diesen Informationen war es nun möglich, eine PhoneCall-Activity anzulegen (https://msdn.microsoft.com/en-us/library/gg328416.aspx):

<csharp>

try

{

_pcall = _service.Retrieve(_pcall.LogicalName, _pcID, _attributes);   // bereits erstellen Call in den Activitäten des Kontakts suchen…

_pcall[“subject”] = “incoming Call from Customer”;

_pcall[“from”] = _from; // new ActivityParty[] { _from };

_pcall[“to”] = _to; // new ActivityParty[] { _to };

_pcall[“phonenumber”] = “+4984414006999”;

_pcall[“description”] = _stTextBox;

_pcall[“directioncode”] = false; // false for incoming, true for outging;

_pcall[“regardingobjectid”] = new EntityReference(_contact.LogicalName, _custRef.Id);

_service.Update(_pcall);

}

catch (Exception ex)

{

MessageBox.Show(“Failed to Update PhoneCall.” + ex.Message);

}

}

</csharp>

Zur Kontrolle die Ansicht in CRM – die beiden Einträge sind angekommen und dem richtigen Kontakt zugeordnet…

 

Vom Callcenter zum digitalen Contact Center

In einigen Beiträgen habe ich mich ja schon den Möglichkeiten genähert, die z. B. der Einsatz von Lucs (Luware) im Kontext von Skype for Business bieten kann. In diesem Webcast beleuchte ich (in 30 Minuten) nun Möglichkeiten, wie Kundennähe durch den Einsatz unterschiedlicher Features und Tools rund um Skype for Business helfen, nahe am Kunden dran zu sein und einen guten Service bieten zu können. Hierzu gehören folgende Themen:

  • Federation
  • Integration mit Skype Consumer
  • Ein Beispiel für die Integration mit Cloud für Customer (SAP)
  • Omni-Channel Ansatz (mit der Unterstützung durch Luware)
  • Integration von synchroner Kommunikation in eine Website

Der Webcast selbst ist nicht technisch orientiert, sondern zeigt Lösungsbeispiele auf.

Noch eine Anmerkung zum Webcast: auch wenn ich in der Nachbearbeitung versuche, so bleiben dann doch noch ein paar typische “ähs” im Vortrag. Ich hoffe, sie stören nicht zu sehr. Parallel musste ich beim Anhören der Aufzeichnung feststellen, dass das Wort “entsprechend” wieder zu einem meiner beliebtesten Füllwörter geworden ist. Ich möchte das im Vorfeld schon einmal entschuldigen – blenden Sie es einfach nach Möglichkeit aus dem Redefluss aus.

 

Microsoft Teams – Einladen externer Gäste

Bereits vor Monaten wurde der erste Schritt getan: es war möglich, externe Mitarbeiter über einen Microsoft Office 365 Account in das Team einzuladen.

Gestern nun hat Microsoft angekündigt, dass das Einladen von Externen nun auch mit weiteren EMail-Adressen (outlook.com, gmail.com) möglich ist. Damit ist ein weiterer Meilenstein in der Zusammenarbeit über Unternehmensgrenzen hinweg genommen. Externe Teilnehmer haben damit Zugriff auf auf Dateien, Team-Chats oder Meetings, sind aber auch durch die Sicherheitsrichtlinien und die Compliance-Mechanismen von Office 365 geschützt.

Die Einladung erfolgt dabei denkbar einfach:

Wählen Sie aus dem Kontextmenü des Teams den Eintrag Team verwalten.

Klicken Sie nun auf “Mitglied hinzufügen”…

Geben Sie die externe EMail-Adresse ein und klicken Sie auf Hinzufügen.

Schließen Sie anschließend das Fenster.

 

Der externe Teilnehmer wird nun als Gast in der Liste der Mitglieder aufgeführt.

 

Der eingeladene Gast erhält eine Mail von “Microsoft Teams”. Die Mail enthält alle notwendigen Informationen…

© 2019 Blog

Theme von Anders NorénHoch ↑