Alice dalam Bitrix

Alice dan Bitrix24

Hari ini kita:

  1. Mari kita membuat aplikasi Alice (skill) menggunakan layanan Yandex Cloud Functions (Oktober 2019) yang baru.
  2. Kami akan mengonfigurasi aplikasi kami sehingga mengirimkan pesanan pelanggan (yang disebut lead) ke Bitrix24 CRM.

Proyek kami akan menggunakan Node.js (versi 10.xx) - itu harus diinstal pada mesin lokal Anda dengan npm (secara default, npm diinstal bersama dengan instalasi Node.js , jadi kemungkinan besar Anda tidak akan harus menginstalnya secara terpisah).

Menurut paragraf pertama dari daftar kami, kami akan belajar cara bekerja dengan Cloud Functions , dan ini masuk akal: a) jawaban dari aplikasi kami akan datang kepada Alice lebih cepat (dia tinggal di suatu tempat di lingkungan, mungkin bahkan di luar tembok); b) membantu menghemat sedikit (dan mungkin banyak dengan pelanggan besar): secara resmi diumumkan bahwa ketika menggunakan keterampilan Alice, panggilan kode dalam Fungsi Cloud tidak dikenakan biaya (meskipun ada jebakan kecil di sana - saya akan membicarakannya sedikit nanti).

Poin kedua adalah tentang salah satu dari beberapa cara untuk menghasilkan uang dengan Alice. Berdasarkan pengetahuan yang diperoleh hari ini, akan dimungkinkan: a) untuk membuat aplikasi yang dibuat khusus untuk klien bisnis; b) buka bisnis Anda sendiri (dalam hal ini Anda akan menjadi pelopor dan karenanya menjadi sangat kaya).

Tetapi jika Anda belum memiliki keterampilan untuk Alice, atau memiliki sedikit pengalaman - saya merujuk Anda ke artikel pertama saya di seri ini: "Alice Mendapat Keterampilan" - dengan bantuannya Anda akan membuat aplikasi sederhana yang mengutip orang-orang pintar dan juga memiliki tombol untuk mengumpulkan donasi untuk merangsang pikiran cerdas Anda sendiri.

Hari ini kita akan membuat aplikasi yang agak sederhana juga - ini adalah skenario kerjanya. Seorang Penjual Super menjual namanya dan nama keluarga dari pelanggan, dan ketika yang terakhir mengaku (atau menipu) - mengirim pesanan (timah) yang berisi data ini ke Bitrix24. Semuanya seperti yang ditunjukkan pada gambar di bawah ini.

Berikut adalah keterampilan Penjual Bitrix (tidak ada dalam katalog keterampilan Alice, tetapi masih hidup dan Anda dapat menyebutnya dengan frasa: "Alice, luncurkan keterampilan Penjual Bitrix" - Saya mengundang Anda untuk mengujinya). Di layar pertama (kiri), penjual kami tidak senang bahwa pengguna hanya memberikan nama dan dia bertanya lagi. Di layar kedua (di kanan) - semuanya OK, dan urutan "terbang" ke Bitrix24:

Skill Alice Paling Banyak Dijual oleh Bitrix

Tetapi petunjuk sudah diterima dari penjual kami, dan itu bisa dilihat di konsol Bitrix24 CRM:

Konsol Bitrix24

Sekarang setelah tujuan pekerjaan kita jelas, mari kita mulai.

Yandex Cloud


Meskipun pelatihan untuk bekerja dengan platform Yandex.Cloud bukan tujuan dari artikel ini (tapi saya merencanakan artikel seperti itu di masa mendatang), agar kami dapat melanjutkan, kami akan fokus pada titik kunci - membuat akun di Yandex.Cloud. Jika Anda telah melewati tahap ini, Anda dapat melewati bagian ini tanpa konsekuensi negatif untuk pelajaran hari ini. Sebenarnya, ini semua sangat sederhana.

Di bawah akun Yandex Anda, buka situs web Yandex.Cloud dan klik tombol " Konsol ".

Situs web Yandex.Cloud

Sistem akan membuat direktori yang berfungsi untuk Anda di cloud yang disebut default (jika Anda setuju dengan nama ini):

Direktori kerja default

Sekarang, pergi ke direktori default (kami berasumsi bahwa Anda menerima semua nama yang diusulkan oleh sistem), Anda akan melihat ubin Virtual Private Cloud , seperti yang ditunjukkan pada gambar (dua ubin lain yang juga Anda lihat akan muncul kemudian):

Cloud pribadi virtual

Dengan mengeklik ubin kami akan melihat bahwa jaringan cloud secara otomatis dibuat untuk Anda juga, anehnya, di bawah nama default (jangan bingung dengan nama direktori kerja dengan nama yang sama dengan semua ini!):

Jaringan cloud

Dengan mengklik pada nama jaringan ( default ), kita akan melihat propertinya, termasuk menemukan bahwa (saat ini) jaringan terdiri dari tiga subnet: ru-central1-a , ru-central1-b dan ru-central1-c .

Properti jaringan

Pada intinya, subnet disebut. pusat data, mis. landai fisik dengan server yang berlokasi di berbagai kota di Federasi Rusia (yang disebut zona) untuk menjamin operasi platform yang tidak terputus, dan untuk menjaga integritas (mis. integritas dan keamanan) data pengguna. Untuk mengurangi waktu yang diperlukan untuk melakukan operasi, disarankan untuk menyimpan semua sumber daya yang saling berhubungan di subnet yang sama (mis. Dalam satu pusat data). Selanjutnya, kami akan menggunakan subnet ru-central1-b , tetapi Anda dapat memilih yang lain ketika saatnya tiba untuk Anda pilih. Kabar baik! Ini semua yang perlu kita ketahui tentang jaringan, subnet, dan zona, dan hari ini kita tidak akan kembali lagi ke sini!

Sekarang tinggal melampirkan kartu bank ke akun Yandex.Cloud sehingga semua layanannya tersedia bagi kami. Di sini saya harus mengatakan bahwa Yandex.Cloud memberikan semua orang masa percobaan 60 hari dan 4 ribu rubel - yaitu. ketika semua ini berakhir lebih dulu. Tetapi bahkan setelah masa uji coba berakhir, dana Anda tidak akan didebit secara otomatis dari kartu bank yang tertaut sampai Anda secara eksplisit mengonfirmasi hal ini dengan mengeklik tombol " Alihkan ke versi berbayar ".

Penafian
Bukan aturan saya untuk memberikan jaminan, terutama yang finansial. Oleh karena itu, waktunya telah tiba untuk secara eksplisit menyatakan bahwa saya melepaskan tanggung jawab apa pun, jika tiba-tiba, kapan saja, ternyata ketentuan platform Yandex.Cloud mengenai penggunaan gratis atau paket tarif tidak sesuai dengan apa yang tertulis di sini atau harapan Anda lainnya .

Jadi, untuk melampirkan kartu bank, Anda harus memilih item Penagihan di menu di sebelah kiri:

Penagihan Yandex. Awan

Di sana, klik tombol "Buat Akun" , dan ikuti instruksi: terima ketentuan penggunaan, masukkan detail kartu bank Anda, konfirmasi tindakan, dll. Ketika akun pembayaran dibuat, semua layanan Yandex.Cloud akan tersedia, dan kami akan dapat melanjutkan.

Bitrix24


Jika Anda belum memiliki akun di Bitrix24 - maka sekarang saatnya untuk membuatnya. Semuanya sederhana dan jelas di sini: buka situs web Bitrix24 dan buat akun untuk Anda sendiri di sana. Mereka memiliki tingkat bebas yang agak murah hati tanpa batas waktu, jadi untuk keperluan kita membayar sesuatu ada benar-benar opsional (meskipun mungkin).

Selanjutnya, kita perlu membuat webhook yang masuk. Untuk melakukan ini, pilih di menu kiri: Aplikasi (mungkin item ini disembunyikan di daftar "Lainnya") -> tab "Webhooks" -> tombol "Tambahkan webhook" , seperti yang ditunjukkan pada tangkapan layar:

Situs web

Ketika Anda mengklik tombol " Tambahkan webhook ", pilih: " Webhook masuk " dari daftar, lalu pada halaman pembuatan, masukkan nama dan deskripsi yang masuk akal untuk webhook baru yang masuk, dan juga pilih kotak centang CRM (crm) :

Pembuatan Webhook

Setelah itu di bagian bawah halaman klik tombol " Simpan ". Akibatnya, sistem akan memberi Anda URL sampel dengan webhook Anda, kira-kira seperti ini:

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

Di mana alih-alih xxxxxxx akan menjadi webhook Anda saat ini (dan bukannya 12345 - subdomain asli Anda).
Ingatlah bahwa webhook harus dirahasiakan, karena dapat digunakan untuk membuat permintaan ke akun Bitrix24 Anda.

Tetapi kita perlu sedikit mengubah parameter dari webhook ini - mari kita lakukan segera agar tidak kembali lagi ke sini dan menyimpan (di tempat yang aman) URL webhook yang diedit. Yang harus Anda lakukan adalah mengganti profil di jalur dengan crm.lead.add.json , dan karenanya keahlian kami akan memerlukan URL seperti ini:
 https://12345.bitrix24.ru/rest/1/xxxxxxx/crm.lead.add.json 

Itu saja. Kami memberikan kode keahlian kami untuk Alice.

Bekerja dengan proyek


Sekarang adalah saatnya untuk mulai bekerja dengan proyek kami - sebuah keterampilan untuk Alice, dengan nama sandi " Penjual Bitrix ". Kami mengkloning (atau mengunduh arsip zip) repositori GitHub: alice-tutorial-bitrix24 . Repositori adalah bagian integral dari artikel ini. Di baris perintah atau terminal, instal dependensi yang diperlukan:

 cd alice-tutorial-bitrix24 npm install 

Sekarang isi folder ini akan terlihat seperti ini:

Folder proyek

File proyek utama, index.js , berisi semua kode kami. Dari direktori gambar , unggah tiga gambar ke keahlian Anda di konsol pengembang Alice - Sumber Daya tab -> Gambar . Seperti ini:

Gambar di konsol Alice

Bingkai merah menyoroti pengidentifikasi gambar yang perlu kita masukkan ke dalam kode kita. Tetapi akan lebih baik lagi jika Anda menyiapkan gambar sendiri menggunakan analogi ini. Saya merekomendasikan ukuran 512 x 230 piksel. Format file yang diperlukan: JPEG, JPG, PNG . Ini juga berguna untuk meminimalkan mereka terlebih dahulu menggunakan beberapa utilitas - misalnya, saya menggunakan kompresor Optimizilla online.

Sekarang buka file index.js di beberapa editor (Saya punya Visual Studio Code ):

Kode

Alih-alih xxx ... gantikan nilai aktual Anda: subdomain Bitrix24 dan webhook yang kami terima di langkah sebelumnya, dan pengidentifikasi gambar baru saja diterima. Seperti yang Anda lihat, kode ini penuh dengan komentar - cukup baca saja seperti konduktor skor!

Fungsi Cloud & Penyimpanan Objek


Sekarang Anda perlu menempatkan aplikasi kami di Cloud Functions - layanan dari Yandex.Cloud . Untuk melakukan ini, Anda harus terlebih dahulu menyiapkan arsip zip yang akan menyertakan direktori dengan paket dependensi node_modules dan file index.js yang baru saja diedit. Sekarang folder proyek kami (bersama dengan arsip zip terbuka untuk kejelasan) akan terlihat seperti ini:

Proyek dengan arsip zip

Tetapi jika Anda melihat properti dari arsip zip kami, ternyata karena ada di dalamnya direktori dengan dependensi node_modules , ukuran arsip mencapai hampir 6 Mb . Sedangkan menurut dokumentasi, langsung dari mesin lokal di Cloud Functions Anda dapat mengunggah arsip yang berukuran tidak lebih dari 4 MB . Oleh karena itu, kita harus mengunggah arsip ini terlebih dahulu ke layanan Yandex.Cloud lain - Penyimpanan Objek Yandex , dan dari sana - mengimpornya ke Cloud Functions . Tangkapan layar di bawah ini menunjukkan lokasi kedua layanan ini di menu navigasi konsol Yandex.Cloud :

Yandex.Layanan Keras

Kami masuk ke Object Storage , dan membuat ember di sana (mis. Ember, jika dalam bahasa Rusia) untuk menyimpan file. Saya menyebut aplikasi-ember saya , milik Anda - Anda dapat memberi nama apa pun yang Anda suka. Biarkan pengaturan lain tidak berubah:

gambar

Kami memuat arsip zip kami ke dalam ember yang baru dibuat:

Unduh arsip ke ember

Sekarang di menu navigasi kiri, pergi ke layanan Cloud Functions , dan di sana kami membuat fungsi baru dengan menekan tombol dengan nama yang sama. Kami memberikan fungsi nama yang masuk akal, memberikan deskripsi singkat, dan klik tombol " Buat ":

Penciptaan Fungsi

Setelah membuat suatu fungsi, namanya akan muncul di daftar semua fungsi yang tersedia (tetapi kemungkinan Anda hanya memilikinya sejauh ini). Klik pada namanya. Di halaman yang terbuka, di menu kiri, buka bagian " Editor " dan isi bidang yang diperlukan:

Properti Fungsi

Harap dicatat bahwa kami perlu beralih ke tab Penyimpanan Objek dan itu ada manual, untuk beberapa alasan tanpa daftar drop-down dan tooltips (kekurangannya adalah Anda perlu menulis untuk mendukung Yandex.Cloud ), isi: " Bucket " - nama kami baru-baru ini ember dibuat; " Objek " - arsip zip dari proyek kami, terletak di ember ini; " Entry point " - sesuai dengan skema: main_file_name (dot) module_name . Titik masuk kami adalah index.skill . Dan mengapa tepatnya - tebak dari gambar ini:

Titik masuk

Jangan mengubah nilai di bidang yang tersisa, tetapi klik tombol Buat Versi . Dalam beberapa detik, kode kami dari Object Storage akan diimpor di sini, dan fungsinya akan dibuat (ngomong-ngomong, sekarang arsip zip dari Object Storage dapat dihapus dengan aman, tetapi Anda juga dapat meninggalkannya sebagai salinan cadangan proyek - biaya penyimpanannya simbolis di sana), dan kami akan secara otomatis menjadi simbol di sana). dialihkan ke halaman browse :

Ikhtisar Properti Fungsi

Di sini Anda perlu mengaktifkan sakelar " Fungsi publik " (pembaruan: mulai November 2019, Anda tidak dapat membuat fungsi untuk keterampilan Alice menjadi publik - integrasi internal diterapkan saat memanggil mereka melalui pengidentifikasi, lihat di bawah), dan nilai bidang " Identifier " dan " Tautan " untuk memanggil "rahasiakan (dalam gambar saya cukup banyak menghapus bidang ini), karena semua orang yang tahu nilai-nilai mereka akan dapat memanggil fungsi Anda. Dan panggilan fungsi dengan referensi - ini adalah jebakan yang saya sebutkan di awal artikel - mereka dikenakan biaya. Namun dalam keahlian kami, kami akan memanggil fungsi dengan cara lain - melalui pengenalnya. Panggilan ini akan gratis!

Yandex. Dialog


Kami pergi ke konsol pengembang Yandex.Dialogs , membuat keterampilan baru (tetapi dengan nama yang berbeda - " Penjual Bitrix " sudah ada!), Dan pada tab " Pengaturan ", di bagian " Backend ", pilih " Function in Yandex.Cloud ", dan dari Di daftar turun bawah, pilih pengidentifikasi fungsi kami:

Pengaturan keterampilan

Kami mengisi semua bidang lain, menyimpan, dan pergi ke tab pengujian. Seharusnya terlihat seperti ini:

Tes keterampilan

Kami mengirimkan keterampilan kami ke moderasi, kemudian menerbitkan dan menggunakannya: menunjukkannya kepada teman dan pelanggan potensial, dan yang paling penting - kami mengembangkan proyek lebih lanjut ke arah ini.

Kesimpulan


Meskipun keahlian kami menyebut dirinya penjual super , pada kenyataannya, penjual itu agak bodoh. Beri dia satu nama - dia akan meminta nama belakangnya (tidak apa-apa). Anda akan memberinya nama belakang - sekarang dia akan meminta nama (Tapi maafkan aku, sayangku, aku baru saja memanggilmu!). Semua ini dari fakta bahwa ia tidak menyimpan informasi perantara yang diterima dari pengguna (yaitu, sebelum mengirim ke Bitrix24 ), serta konteks percakapan. Ini akan menjadi artikel saya berikutnya. Jika tertarik, daftar sehingga Anda tidak ketinggalan apa pun. Anda dapat berlangganan di sini atau di Telegram . Dan saya mengambil cuti itu.

Pembaruan pada tanggal 25 Desember 2019: artikel " Alice mengingat semuanya " diterbitkan, yang membahas masalah pelestarian informasi dan konteks percakapan.

Donat


Donat

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


All Articles