Alice in Bitrix

Alice und Bitrix24

Heute haben wir:

  1. Lassen Sie uns die Alice- Anwendung (Skill) mit dem neuen Yandex Cloud Functions-Dienst (Oktober 2019) erstellen.
  2. Wir werden unsere Anwendung so konfigurieren, dass sie Kundenaufträge (die sogenannten Leads) an Bitrix24 CRM sendet .

Unser Projekt verwendet Node.js (Version 10.xx) - es muss mit npm auf Ihrem lokalen Computer installiert werden (standardmäßig wird npm zusammen mit der Installation von Node.js installiert, sodass Sie es höchstwahrscheinlich nicht separat installieren müssen).

Gemäß dem ersten Absatz unserer Liste werden wir lernen, wie man mit Cloud-Funktionen arbeitet , und dies ist sinnvoll: a) Die Antworten aus unserer Anwendung kommen schneller zu Alice (sie lebt irgendwo in der Nachbarschaft, vielleicht sogar außerhalb der Mauer); b) Es hilft, ein wenig zu sparen (und vielleicht viel bei einer großen Kundschaft): Es wird offiziell angekündigt, dass bei Verwendung von Alices Fähigkeiten Code-Aufrufe in Cloud-Funktionen nicht in Rechnung gestellt werden (obwohl es dort eine kleine Gefahr gibt - ich werde etwas später darüber sprechen).

Der zweite Punkt betrifft eine der wenigen Möglichkeiten, mit Alice Geld zu verdienen. Basierend auf den heute gewonnenen Erkenntnissen wird es möglich sein: a) maßgeschneiderte Anwendungen für Geschäftskunden zu erstellen; b) Eröffnen Sie Ihr eigenes Geschäft auf eigene Faust (in diesem Fall gehören Sie zu den Pionieren und werden daher fabelhaft reich).

Aber wenn Sie keine Fähigkeiten für Alice erworben haben oder wenig Erfahrung haben - ich verweise Sie auf meinen ersten Artikel in dieser Reihe: „Alice bekommt eine Fähigkeit“ -, erstellen Sie mit ihrer Hilfe eine einfache Anwendung, die kluge Leute zitiert und auch eine Schaltfläche zum Sammeln hat Spenden, um Ihre eigenen klugen Gedanken anzuregen.

Heute werden wir auch eine ziemlich einfache Anwendung machen - hier ist ein Szenario seiner Arbeit. Ein Superverkäufer verkauft den Vor- und Nachnamen des Kunden. Wenn dieser gesteht (oder täuscht), sendet er eine Bestellung (Lead) mit diesen Daten an Bitrix24. Alles ist wie in den Bildern unten gezeigt.

Hier ist die Bitrix Seller- Fertigkeit (sie befindet sich nicht im Alice-Fertigkeitenkatalog, ist aber lebendig und Sie können sie mit dem Satz "Alice, starten Sie die Bitrix Seller-Fertigkeit" aufrufen - ich lade Sie ein, sie zu testen). Auf dem ersten Bildschirm (links) war unser Verkäufer nicht glücklich, dass der Benutzer nur den Namen angegeben hatte, und er fragte erneut. Auf dem zweiten Bildschirm (rechts) - alles ist in Ordnung und die Bestellung "flog" zu Bitrix24:

Alice's Fähigkeit Meist verkauft von Bitrix

Der Lead wurde jedoch bereits von unserem Verkäufer erhalten und kann in der Bitrix24 CRM-Konsole angezeigt werden:

Bitrix24-Konsole

Nachdem der Zweck unserer Arbeit klar ist, können wir loslegen.

Yandex Cloud


Obwohl das Training für die Arbeit mit der Yandex.Cloud- Plattform nicht das Ziel dieses Artikels ist (aber ich plane solche Artikel in Zukunft), konzentrieren wir uns auf den wichtigsten Punkt - das Erstellen eines Kontos in Yandex.Cloud. Wenn Sie diese Phase bereits bestanden haben, können Sie diesen Abschnitt ohne negative Konsequenzen für unsere heutige Lektion überspringen. In der Tat ist das alles sehr einfach.

Gehen Sie unter Ihrem Yandex-Konto zur Yandex.Cloud-Website und klicken Sie auf die Schaltfläche " Konsole ".

Website Yandex.Cloud

Das System erstellt für Sie in der Cloud ein Arbeitsverzeichnis mit dem Namen default (wenn Sie diesem Namen zustimmen):

Standardarbeitsverzeichnis

Wenn Sie nun zum Standardverzeichnis wechseln (wir gehen davon aus, dass Sie alle vom System vorgeschlagenen Namen akzeptieren), sollten Sie eine Virtual Private Cloud- Kachel sehen, wie im Bild gezeigt (die beiden anderen Kacheln, die Sie dort ebenfalls sehen, werden später angezeigt):

Virtuelle private Cloud

Wenn Sie auf die Kachel klicken, sehen Sie, dass seltsamerweise auch für Sie automatisch ein Cloud-Netzwerk unter dem Standardnamen erstellt wird (nicht mit dem Namen des Arbeitsverzeichnisses mit demselben Namen verwechseln, in dem sich all dies befindet!):

Cloud-Netzwerke

Wenn Sie auf den Netzwerknamen ( Standard ) klicken, werden dessen Eigenschaften angezeigt , einschließlich der Feststellung, dass das Netzwerk (im Moment) aus drei Subnetzen besteht: ru-central1-a , ru-central1-b und ru-central1-c .

Netzwerkeigenschaften

Subnetze werden im Kern so genannt. Rechenzentren, d.h. physische Rampen mit Servern in verschiedenen Städten der Russischen Föderation (den sogenannten Zonen), um den unterbrechungsfreien Betrieb der Plattform zu gewährleisten und die Integrität (d. h. Integrität und Sicherheit) der Benutzerdaten zu gewährleisten. Um die Zeit für die Ausführung von Vorgängen zu verkürzen, wird empfohlen, alle miteinander verbundenen Ressourcen im selben Subnetz (d. H. In einem Rechenzentrum) zu speichern. Im Folgenden werden wir das Subnetz ru-central1-b verwenden , aber Sie können jedes andere auswählen, wenn die Zeit für Sie gekommen ist. Gute Nachrichten! Dies ist alles, was wir über Netzwerke, Subnetze und Zonen wissen müssen, und heute werden wir nicht mehr hierher zurückkehren!

Jetzt muss die Bankkarte noch an das Yandex.Cloud- Konto angehängt werden, damit uns alle ihre Dienste zur Verfügung stehen. Hier muss ich sagen, dass Yandex.Cloud jedem eine Probezeit von 60 Tagen und viertausend Rubel bietet - d. H. denn wenn irgendetwas davon zuerst endet. Aber auch nach Ablauf der Testphase wird Ihr Guthaben nicht automatisch von der verknüpften Bankkarte abgebucht, bis Sie dies ausdrücklich bestätigen, indem Sie auf die Schaltfläche " Zur kostenpflichtigen Version wechseln" klicken.

Haftungsausschluss
Es liegt nicht in meinen Regeln, Garantien zu geben, insbesondere finanzielle. Daher ist es an der Zeit, ausdrücklich zu erklären, dass ich jede Verantwortung aufgeben muss, wenn sich plötzlich und zu jedem Zeitpunkt herausstellt, dass die Bedingungen der Yandex.Cloud- Plattform in Bezug auf ihre kostenlose Nutzung oder Tarifpläne nicht dem entsprechen, was hier geschrieben steht, oder Ihren anderen Erwartungen .

Um eine Bankkarte anzuhängen, müssen Sie den Abrechnungsposten im Menü links auswählen:

Abrechnung von Yandex.Clouds

Klicken Sie dort auf die Schaltfläche "Konto erstellen" und befolgen Sie die Anweisungen: Akzeptieren Sie die Nutzungsbedingungen, geben Sie Ihre Bankkartendaten ein, bestätigen Sie die Aktionen usw. Wenn das Zahlungskonto erstellt wird, werden alle Yandex.Cloud- Dienste verfügbar und wir können fortfahren .

Bitrix24


Wenn Sie noch kein Konto in Bitrix24 haben, ist es Zeit, ein Konto zu erstellen. Hier ist alles einfach und klar: Besuchen Sie die Bitrix24-Website und erstellen Sie dort ein Konto für sich. Sie haben ein ziemlich großzügiges freies Level ohne zeitliche Begrenzung, daher ist für unsere Zwecke etwas zu bezahlen völlig optional (obwohl es möglich ist).

Als nächstes müssen wir einen eingehenden Webhook erstellen. Wählen Sie dazu im linken Menü Folgendes aus: Anwendungen (möglicherweise ist dieses Element in der Liste "Mehr" versteckt) -> Registerkarte "Webhooks" -> Schaltfläche "Webhook hinzufügen" , wie im Screenshot gezeigt:

Webhooks

Wenn Sie auf die Schaltfläche " Webhook hinzufügen " klicken, wählen Sie: " Eingehender Webhook " aus der Liste aus. Geben Sie dann auf der Erstellungsseite einen angemessenen Namen und eine Beschreibung für den neuen eingehenden Webhook ein und aktivieren Sie das Kontrollkästchen CRM (crm) :

Webhook-Erstellung

Klicken Sie anschließend unten auf der Seite auf die Schaltfläche " Speichern ". Infolgedessen gibt Ihnen das System eine Beispiel-URL mit Ihrem Webhook, etwa wie folgt:

 URL   REST: https://12345.bitrix24.ru/rest/1/xxxxxxx/profile/ 

Wo anstelle von xxxxxxx Ihr aktueller Webhook sein wird (und anstelle von 12345 - Ihre echte Subdomain).
Denken Sie daran, dass der Webhook geheim gehalten werden muss, da damit Anfragen an Ihr Bitrix24- Konto gestellt werden können.

Aber wir müssen die Parameter dieses Webhooks ein wenig ändern - machen wir es sofort, um nicht mehr hierher zurückzukehren und die bearbeitete Webhook-URL (an einem sicheren Ort) zu speichern. Alles, was Sie tun müssen, ist, das Profil im Pfad durch crm.lead.add.json zu ersetzen. Für unsere Fähigkeiten ist daher eine URL wie die folgende erforderlich:
 https://12345.bitrix24.ru/rest/1/xxxxxxx/crm.lead.add.json 

Das ist alles. Wir gehen zum Code unserer Fähigkeiten für Alice über.

Arbeite mit dem Projekt


Jetzt ist es an der Zeit, mit unserem Projekt zu arbeiten - eine Fähigkeit für Alice mit dem Codenamen " Bitrix Seller ". Wir klonen (oder laden das Zip-Archiv herunter) das GitHub-Repository: alice-tutorial-bitrix24 . Das Repository ist ein wesentlicher Bestandteil dieses Artikels. Installieren Sie in der Befehlszeile oder im Terminal die erforderlichen Abhängigkeiten:

 cd alice-tutorial-bitrix24 npm install 

Nun sollte der Inhalt dieses Ordners folgendermaßen aussehen:

Projektordner

Die Hauptprojektdatei index.js enthält unseren gesamten Code. Laden Sie aus dem Bilderverzeichnis drei Bilder in die Entwicklerkonsole von Alice hoch - Registerkarte Ressourcen -> Bilder . So:

Bilder in Alices Konsole

Der rote Rahmen hebt die Kennungen der Bilder hervor, die wir in unseren Code einfügen müssen. Aber es ist noch besser, wenn Sie Ihre eigenen Bilder mit dieser Analogie vorbereiten. Ich empfehle eine Größe von 512 x 230 Pixel. Erforderliches Dateiformat: JPEG, JPG, PNG . Es ist auch nützlich, sie zuerst mit einem Dienstprogramm zu minimieren - zum Beispiel habe ich den Online- Optimizilla- Kompressor verwendet.

Öffnen Sie nun die Datei index.js in einem Editor (ich habe Visual Studio Code ):

Code

Anstelle von xxx ... ersetzen Sie Ihre tatsächlichen Werte: die Bitrix24- Subdomain und den Webhook, die wir im vorherigen Schritt erhalten haben, und die gerade erhaltenen Bildkennungen. Wie Sie sehen können, ist der Code voller Kommentare - lesen Sie ihn einfach wie einen Dirigenten!

Cloud-Funktionen und Objektspeicherung


Jetzt müssen Sie unsere Anwendung in Cloud-Funktionen platzieren - ein Dienst von Yandex.Cloud . Dazu müssen Sie zunächst ein Zip-Archiv vorbereiten, das das Verzeichnis mit den Abhängigkeitspaketen node_modules und der soeben bearbeiteten Datei index.js enthält. Nun sieht der Ordner unseres Projekts (zusammen mit dem aus Gründen der Übersichtlichkeit geöffneten Zip-Archiv) folgendermaßen aus:

Projekt mit Zip-Archiv

Wenn Sie sich jedoch die Eigenschaften unseres Zip-Archivs ansehen, stellt sich heraus, dass die Archivgröße aufgrund des Vorhandenseins eines Verzeichnisses mit Abhängigkeiten von node_modules fast 6 MB erreicht . Laut Dokumentation können Sie direkt vom lokalen Computer in Cloud Functions Archive hochladen, die nicht größer als 4 MB sind. Daher müssen wir dieses Archiv zuerst in einen anderen Yandex.Cloud- Dienst - Yandex Object Storage - hochladen und von dort aus in Cloud-Funktionen importieren. Der folgende Screenshot zeigt die Position dieser beiden Dienste im Navigationsmenü der Yandex.Cloud- Konsole:

Yandex.Cloud Services

Wir gehen in den Objektspeicher und erstellen dort einen Bucket (d. H. Einen Bucket, wenn auf Russisch) zum Speichern von Dateien. Ich habe meinen Bucket App-Bucket angerufen, deinen - du kannst benennen, was du willst. Lassen Sie andere Einstellungen unverändert:

Bild

Wir laden unser Zip-Archiv in den neu erstellten Bucket:

Laden Sie das Archiv in den Eimer

Gehen Sie nun im linken Navigationsmenü zum Cloud-Funktionsdienst , und dort erstellen wir eine neue Funktion, indem Sie die gleichnamige Taste drücken. Wir geben der Funktion einen vernünftigen Namen, geben eine kurze Beschreibung und klicken auf die Schaltfläche " Erstellen ":

Funktionserstellung

Nach dem Erstellen einer Funktion wird ihr Name in der Liste aller verfügbaren Funktionen angezeigt (es ist jedoch wahrscheinlich, dass Sie ihn nur bis jetzt haben). Klicken Sie auf den Namen. Gehen Sie auf der sich öffnenden Seite im linken Menü zum Abschnitt " Editor " und füllen Sie die erforderlichen Felder aus:

Funktionseigenschaften

Bitte beachten Sie, dass wir zur Registerkarte Objektspeicher wechseln müssen und diese aus irgendeinem Grund rein manuell ist, ohne Dropdown-Listen und Tooltips (der Nachteil ist, dass Sie zur Unterstützung von Yandex.Cloud schreiben müssen ). Geben Sie Folgendes ein : " Bucket " - der Name unseres kürzlich Eimer erstellt; " Objekt " - Zip-Archiv unseres Projekts, in diesem Eimer liegend; " Einstiegspunkt " - gemäß Schema: Hauptdateiname (Punkt) Modulname . Unser Einstiegspunkt wird index.skill sein . Und warum genau - raten Sie von diesem Bild:

Einstiegspunkt

Ändern Sie nicht die Werte in den verbleibenden Feldern, sondern klicken Sie auf die Schaltfläche Version erstellen . In wenigen Sekunden wird unser Code aus dem Objektspeicher hier importiert und die Funktion erstellt (übrigens, jetzt kann das Zip-Archiv aus dem Objektspeicher sicher gelöscht werden, aber Sie können es auch als Sicherungskopie des Projekts belassen - die Speicherkosten sind dort symbolisch), und wir werden es automatisch tun auf die Suchseite umgeleitet:

Übersicht über die Funktionseigenschaften

Hier müssen Sie den Schalter " Öffentliche Funktion " (Update: Ab November 2019 können Sie keine Funktionen für Alices Fähigkeiten öffentlich machen - die interne Integration wird implementiert, wenn Sie sie über einen Bezeichner aufrufen, siehe unten) und den Wert der Felder " Bezeichner " und " Link " aktivieren zu nennen "geheim halten (auf dem Bild habe ich diese Felder so ziemlich gelöscht), da jeder, der seine Werte kennt, Ihre Funktion aufrufen kann. Und Funktionsaufrufe als Referenz - dies ist die Falle, die ich am Anfang des Artikels erwähnt habe - werden berechnet. Aber in unserer Fähigkeit werden wir die Funktion auf eine andere Weise aufrufen - durch ihre Kennung. Diese Anrufe sind kostenlos!

Yandex.Dialogs


Wir gehen zur Yandex.Dialogs-Entwicklerkonsole , erstellen eine neue Fähigkeit (aber mit einem anderen Namen - " Bitrix-Verkäufer " existiert bereits!) Und wählen auf der Registerkarte " Einstellungen " im Abschnitt " Backend " die Option " Funktion in Yandex.Cloud " und von Wählen Sie in der Dropdown-Liste die Kennung unserer Funktion aus:

Fähigkeitseinstellung

Wir füllen alle anderen Felder aus, speichern und gehen zur Registerkarte Testen. Es sollte ungefähr so ​​aussehen:

Fähigkeitstests

Wir senden unsere Fähigkeiten zur Moderation, veröffentlichen sie dann und nutzen sie: Zeigen Sie sie Freunden und potenziellen Kunden, und vor allem entwickeln wir das Projekt in diese Richtung weiter.

Fazit


Obwohl sich unsere Fähigkeit als Superverkäufer bezeichnet , ist der Verkäufer in der Tat ziemlich dumm. Geben Sie ihm einen Namen - er wird nach seinem Nachnamen fragen (dies ist in Ordnung). Du wirst ihm den Nachnamen geben - jetzt wird er nach dem Namen fragen (Aber vergib mir, mein Lieber, ich habe dich gerade angerufen!). All dies aus der Tatsache, dass er die vom Benutzer empfangenen Zwischeninformationen (d. H. Vor dem Senden an Bitrix24 ) sowie den Kontext der Konversation nicht speichert. Dies wird mein nächster Artikel sein. Wenn Sie interessiert sind, melden Sie sich an, damit Sie nichts verpassen. Sie können hier oder im Telegramm abonnieren. Und ich verabschiede mich davon.

Update vom 25. Dezember 2019: Der Artikel „ Alice erinnert sich an alles “ wurde veröffentlicht, der sich mit den Fragen der Informationserhaltung und dem Kontext des Gesprächs befasst.

Donuts


Donat

Source: https://habr.com/ru/post/de464739/


All Articles