Google Cədvəlində E-poçt Güncəlləmələrinin Avtomatlaşdırılması (Google Scripts)

Tl; dr: kodun addım-addım izahı ilə bir Google səhifəsindən bir e-poçt göndərərək e-poçt yeniləmələrini necə avtomatlaşdırmaq olar?

Bir çox insan müxtəlif mövzularda əməkdaşlıq etmək üçün Google Cədvəllərindən istifadə edir. Çoxları KPI-lərini idarə etmək üçün istifadə edir. Heç kimin nəyi necə edəcəyini bilmirsənmi bilirsən? Mümkün olsaydı, həqiqətən sərin olardımı?

E-poçt yeniləməsini birbaşa Cədvəldən göndərin!

Bəli, doğrudur və şəxsən bu həftə sonuna qədər bunu edə biləcəyiniz barədə heç bir fikrim yox idi. Şirin bir OKR, PPP və KPI izləmə vərəqi yaratmaq üçün istifadə etdim, sonra seçdiyim vaxt və tarixdə PPP-lərin həftəlik yeniləməsini göndərdim.

Bütün bunları perspektivə qoyduqdan sonra necə işlədiyini görə bilmək üçün satın almağınızı məsləhət görürəm.

Buradan əldə edə bilərsiniz!

Yaxşı, bu funksional bir sinif olacaq, buna görə başlayaq.

Qeyd: Kod yaza bilmirəm. Bunu necə edəcəyimi özümə öyrətməliydim. Beləliklə, kod yaza bilmirsinizsə, mənə etibar edin, etdiyim yolu öyrənə bilərsiniz!

Müəssisə

Vərəq qurun

Google Cədvəlləri açın.

Bıçağa "Sistem" adını verin.

İndi bəzi məlumat nöqtələri əlavə etmək istəyirsən.

Birinci sətirdə yazın: e-poçt ünvanı, mesaj, şəxs, e-poçt sayı və E-yə 1 yazın.

İkinci sətirdə məlumat əlavə edirsiniz

Bu belə olmalıdır:

Burada nə baş verdiyini izah edim.

  • E-poçt ünvanı: e-poçt adreslərini daxil edirsiniz (və ya mənim kimi başqa bir vərəqdəki e-poçtlara bağlayırsınız)
  • Mesaj: E-poçtu istədiyim kimi formatlaşdırmaq üçün super kompleks bir düstur yaratdım
  • Şəxs: E-məktubu alacaq şəxsin adını mesajın e-poçt hissəsində həmin şəxsə ünvanlaması üçün bağlayacağam.
  • E-poçt sayı: D1 mətndir və heç nə etmir. E2-də neçə nəfərin elektron poçt alması lazım olduğunu izah edən bir sayma funksiyam var. Bu istifadə etdiyimiz kod istinad etdiyi üçün vacibdir!

Əlbətdə ki, iş səhifənizi fərqli bir şəkildə qura və öz kodunuzu yaza bilərsiniz, amma sizə etdiyim işi tam olaraq necə edəcəyimi öyrədəcəyəm.

Ssenari quraşdırma

"Mənim üçün ən azı" "Script Editor" adlı gizli bir bölmə var. Bunu "Əlavələr" altındakı menyuda tapa bilərsiniz.

Bunu açın və burada senarini yazacaqsınız. İlk açdığınız zaman yalnız 3 sətir göstərilir.

Burada kodu kopyalayıb yapışdırırsınız. İndi nə etdiyini anlamaq üçün ssenariyə baxaq.

Ssenari

Budur bir ekran görüntüsü, bunun necə görünəcəyini görə bilərsiniz:

İndi yapışdırmaq üçün kod budur.

function sendEmails () {// Vərəqi 'sistem' hesabatındakı məlumatlarla qaytarır var sheet = SpreadsheetApp.getActiveSpreadsheet (). getSheetByName ("Sistem") var startRow = 2; // Bir başlıq olduğundan işlənəcək məlumatların ilk sətri var numRows = sheet.getRange (1,5) .getValue (); // İşlənəcək sətirlərin sayı sətirləri sayan düsturla təyin olunur. // E-poçt və mesajların olduğu A2: B6 hüceyrələrinin aralığını əldə edin var dataRange = sheet.getRange (startRow, 1, numRows, 2). // poçt sisteminə daxil ediləcək aralıqdakı hər bir sıra üçün dəyərlər əldə edin var data = dataRange.getValues ​​(); // Bu, göndərmək istədiyiniz e-poçtları işləyir (i in data) {var row = data [i]; var emailAddress = sıra [0]; // Birinci sütun var message = satır [1] e-poçt adresidir; // İkinci sütun var subject = "READ: Həftəlik PPP yeniləməsi" mesajıdır; // Bu elektron poçtun mövzusudur // Bu, MailApp.sendEmail-dən göndəriləcək elektron poçt məlumatlarını təhlil edir (emailAddress, mövzu, mesaj); }}

Bunlar nədir?

Bunu "//" görürsən? Bunlar şərh vermək üçün istifadə olunur. "//" bir kompüterə "bu şeyləri görməməzlikdən gəlin, zəif insanlar üçündür" deməkdir.

Kodların hər sətrini sizin üçün izah etmək üçün bu şərh sistemindən istifadə etdim. Ancaq gəlin bundan keçək

Kod izah edir

SendEmails funksiyası () {
  • Bu, skript üçün ad yaradacaqdır
// 'Sistem' cədvəlindəki məlumatların olduğu vərəqi əldə edin var sheet = SpreadsheetApp.getActiveSpreadsheet (). getSheetByName ("Sistem")
  • Bu, məlumatların haradan gəldiyini müəyyənləşdirir. Sistem vərəqindən gəlir, düzdür? Yəni maraqlı olan budur: .getSheetByName ("Sistem")
  • Sonda “Sistem” yazısını görəcəksiniz və sənə “Sistem” adını verməyini dedim. Buna görə. Google-da şablon skriptini gördükdə, yalnız aktiv səhifədən çəkilir. Yalnız bir vərəqiniz varsa və yeniləmələrinizi əl ilə edirsinizsə yaxşıdır. Ancaq birdən çox təbəqə və avtomatlaşdırılmış bir sistemimiz olacaq. Beləliklə, kompüterə cadugərliyi harda istədiyimizi söyləməliyik
  • Buna görə vərəqinizin başqa bir şey adlandırılmasını istəyirsinizsə, sadəcə bu kimi .getSheetByName ("sehrli") kimi sehrlə dəyişdirin.
startRow = 2; // Bir başlıq olduğu üçün işlənəcək məlumatların ilk sətri
  • Vərəqə baxın. 1-ci sətirdə e-poçt, ad və s. Yazmısınız. Faydalı deyil
  • Sənədin ikinci sətirdən başlamasını söyləyirsən, çünki əlavələr buradadır. E-poçtunuz 3-cü sətirdə olsaydı, 3-cü sətirdə olardınız
var numRows = sheet.getRange (1,5) .getValue (); // İşlənəcək sətirlərin sayı sətirləri sayan düsturla təyin olunur
  • Bu bir az əyləncəlidir. Səhifəyə E1-dəki elektron poçt sayını daxil etmisiniz
  • Ssenarilərin hüceyrə istinadları barədə düşünmə tərzi Sütun Sütunudur. Beləliklə, E1 1, 5-ci sıra bir, sütun 5-dir.
  • Buna görə buraya baxın: sheet.getRange (1.5)
  • Budur E1-ə baxın. E-poçtunuzun sayı A1-də olsaydı, sheet.getRange (1.5) yazardınız.
// E-poçt və mesajların yerləşdiyi A2: B6 hüceyrə aralığını əldə edin var dataRange = sheet.getRange (startRow, 1, numRows, 2)
  • Yəni satır və sütunların sırasını xatırlayırsınız? Bu funksiyada daha uzun yol və ya yazı: sətir, sütun, sətir sayı, sütun sayı
  • Bu xüsusiyyət, skriptlərə məlumatları təhlil etmək və e-poçt göndərmək üçün məlumatların çıxarılmasının dəqiq sahəsini izah edir
  • Bizə yalnız e-poçt avtomatlaşdırıcısı üçün e-poçt və mesaj lazımdır. Buna görə bu barədə ssenarilərə məlumat verilməlidir. Bunu etmə yolumuz harada başlayıb harada bitəcəyimizi söyləməkdir
  • sheet.getRange (sıra, sütun, sətir sayı, sütun sayı) sheet.getRange olur (startRow, 1, numRows, 2)
  • Niyə burada adlar var? Yaxşı, yuxarıda startRow və numRows müəyyənləşdirdik! 1 birinci sütun, 2 isə E-poçt və Mesaj olan ilk iki sütun deməkdir. Bəli, bunu başqa cür edə bilərsən. Bir parça var
// poçt sisteminə daxil ediləcək aralıqdakı hər bir sıra üçün dəyərlər əldə edin var data = dataRange.getValues ​​();
  • Bu, yalnız skriptə məlumatları oğurlamağı və "Data" adı olaraq saxlamağı tələb edir.
// Bu, göndərmək istədiyiniz e-poçtları işləyəcək (i in data) {var row = data [i];
  • Bu proqramı başlayacaq (əsasən)
var emailAddress = sıra [0]; // Birinci sütun e-poçt adresidir
  • E-poçtun birinci sətirdə olduğunu söyləyir (0 bizim sıra ilə əlaqəli ilk sətirdir)
var mesajı = sıra [1]; // İkinci sütun mesajdır
  • Mesajın ikinci sütunda olduğunu söyləyir
var subject = "READ: Həftəlik PPP yeniləməsi"; // Bu elektron poçtun mövzusudur
  • Buraya göndərmək istədiyiniz e-poçt mövzusunun adını daxil edə bilərsiniz!
  • Mövzuya "Vərəqlərin necə avtomatlaşdırılacağını öyrənin" mövzusu ilə bir e-poçt göndərmək istəyirsinizsə, əlavə edin
  • var subject = “Bu blog sizə vərəqlərin necə avtomatlaşdırılacağını deyir”;
// Bu MailApp.sendEmail e-poçtu (emailAddress, mövzu, mesaj) tərəfindən göndəriləcək məlumatları təhlil edəcək; }}
  • Bu, ağıllı tapşırıqları yerinə yetirən bir e-poçt funksiyasındakı (MailApp) quruluşu təyin edir
  • E-poçt ünvanını, mövzusunu və mesajını istifadə etmək istədiyimizi söylədilər
  • Prosesin əvvəlindəki "for (i in data) {" materialı hər bir şəxsə e-poçt göndərmək üçün bir dövr yaradır.

Bu kodla oynamalısan.

Bilirəm ki, bu başınızı gəzdirmək üçün çox şey ola bilər, ancaq bacara bilərsiniz. Başqa bir şey etmək üçün kodu dəyişdirməlisinizsə sənədlərə baxın. Bəli, Latın sözlüyündə tərifini oxumasını söyləyərək bir Latın sözünü anlamağa çalışmaq kimi görünür, amma mümkündür

Sənədləri burada tapa bilərsiniz: https://developers.google.com/apps-script/reference/mail/

Elektron poçtların göndərilməsinin avtomatlaşdırılması

İndi istədiyim tarix və saatda necə e-poçt göndərəcəyimi tapmaq üçün bir əbədiyyət googling kodu sərf etdim. Etdim ... sonra bunu hər ölkədə etmək istədiyimi anladım. Növbəti tapşırıq hər bir insanın vaxt zonasına uyğun şəkildə necə düzəldiləcəyini tapmaq idi! Bunu başa düşdüm ... sonra bunu etmək üçün həqiqətən axmaq, asan bir yol tapdım! Lanet olsun!

Bu kodu unutaq ... sadəcə bunu et.

Vaxtı və ya günü dəyişdirmək istəyirsinizsə, aşağıdakıları edin:

Saat düyməsini basmalısınız. Parametrləri anlamaq asandır:

Bazar ertəsi günü göndərmək istəyirsinizsə "Hər Cümə" ni "Hər Bazar ertəsi" olaraq dəyişdirin. Aylıqları həftəlik taymeri dəyişdirərək gündəlik olaraq dəyişə bilərsiniz. Vaxt düyməsini dəyişdirirsən ... yaxşı, sən demə. Fiddle, vurun qazanc. Bitdi FML.

Beləliklə, Gmail-ə icazə vermək həqiqətən hər zamanki kimi işləyir

İndi e-poçt Google hesabınızdan göndəriləcək. Buna görə hesabınız üçün bunu etmək üçün Google-a icazə verməlisiniz. Bunu belə edirsən:

Yarpaq çox ağır qaldırır

Proqramlaşdırma qabiliyyətini yaxşı bilsəniz, edə biləcəyiniz bir neçə xülya işi var (bunu Excel ilə edə bilmirəm və edə bilmirəm). Mesaj üçün bütün formatlaşdırma və s. Excel-də aparılır. Bu super dinamikliyi əldə etmək üçün etməli olduğum şey həqiqətən mürəkkəbdir və izah etmək bir saat çəkəcəkdir. Buna görə mən bunu etməyəcəyəm. İndi yeni super gücünüzü necə istifadə etmək istədiyinizi düşünün.

E-poçt yeniləmələrini necə avtomatlaşdıracağınızı öyrəndiniz. Əgər belədirsə, sosial olun və paylaşın.