- Apps Script nedir, hangi işlere uygundur?
- Tetikleyici, betik ve hizmet: otomasyonun yapı taşları
- Uygulama: form yanıtını kayda geçirip ekibe haber vermek
- Zamana bağlı iş: düzenli rapor ve temizlik
- Yetki, tetikleyici sahibi ve kotalar
- Sık yapılan hatalar
- Öğrenme yolu: elle yapılan işten betiğe
- Bu beceriyi Mindset programlarında nerede çalışırsınız?
- Sık sorulan sorular
Google Apps Script ile Workspace otomasyonu: tetikleyici, betik ve bildirim akışı
Bir form yanıtının e-tabloya işlenmesini, ilgili kişiye e-posta gitmesini ve düzenli raporların kendiliğinden hazırlanmasını Apps Script ile nasıl kurarsınız, hangi tuzaklara dikkat edersiniz.
Bir bakışta
- Apps Script, Workspace uygulamalarını JavaScript ile birbirine bağlayan bir platformdur. Betikler Google'ın sunucularında çalışır; kurulum gerektirmeyen bir tarayıcı düzenleyicisiyle yazılır.
- Her otomasyon tetikleyici, betik ve hizmetten oluşur. Bir olay ya da saat betiği çalıştırır; betik Gmail, E-Tablolar ya da Formlar hizmetini çağırır.
- Form yanıtı, e-tablo kaydı ve bildirim zinciri en yaygın ilk projedir. Küçük ekiplerin elle yaptığı kopyala, yapıştır ve haber ver işini tek bir betik üstlenir.
- Basit tetikleyiciler yetki isteyen hizmetleri çağıramaz; e-posta gönderen akışlar kurulabilir tetikleyici ister. Kurulabilir tetikleyici, onu oluşturan kişinin yetkisiyle çalışır.
- Kotalar hesap türüne göre değişir ve aşıldığında betik durur. Günlük e-posta ve çalışma süresi sınırlarını tasarım aşamasında hesaba katmak gerekir.
Apps Script nedir, hangi işlere uygundur?
Apps Script, Google Workspace ile entegre iş uygulamaları geliştirmek için kullanılan bir platformdur. Modern JavaScript yazarsınız, düzenleyici tarayıcıda açılır ve betikler Drive'a kaydedilip Google'ın sunucularında çalışır. Bilgisayarınızda bir şey kurmanız ya da bir sunucu işletmeniz gerekmez.
En çok şu işlerde karşılığını verir: • E-Tablolarda özel fonksiyon, makro, özel menü ve kenar çubuğu eklemek • Form yanıtı geldiğinde kaydı işlemek ve ilgili kişiye haber vermek • Gmail'de belirli bir ölçüte uyan iletileri bulup işlemek ya da düzenli özet göndermek • Dokümanları ve e-tabloları belirli bir takvimde güncellemek
Hazır bir otomasyon aracına (Make, Zapier) kıyasla Apps Script sizi tek bir ekosisteme bağlar ama karşılığında Workspace verisine derin ve esnek erişim verir. İş mantığı karmaşıklaştıkça, yani koşullu hesaplar, veri temizliği ve özel biçimlendirme gerektiğinde, kodun esnekliği öne çıkar.
Tetikleyici, betik ve hizmet: otomasyonun yapı taşları
Her Apps Script otomasyonunu katmanlı düşünmek, hatayı bulmayı kolaylaştırır. Önce bir tetikleyici olay ya da saat nedeniyle fonksiyonu çağırır. Fonksiyon, yani betiğin mantığı, veriyi okur ve karar verir. Son olarak betik, Gmail, E-Tablolar ya da Formlar gibi bir hizmeti çağırarak iş yapar.
Tetikleyici türleri yapılacak işe göre seçilir. Dokümantasyonda kurulabilir tetikleyiciler şöyle sıralanır: açılış, düzenleme, değişiklik, form gönderimi, takvim etkinliği ve zamana bağlı tetikleyici. Zamana bağlı olanlar dakikalık aralıktan aylık çalışmaya kadar kurulabilir.
Bir ayrıntı kritiktir: betikle yapılan işlemler tetikleyici başlatmaz. Örneğin bir betik form yanıtı gönderse, o formun gönderim tetikleyicisi çalışmaz. Zincirleme otomasyon tasarlarken bu sınır, "neden sonraki adım hiç çalışmadı" sorusunun yaygın cevabıdır.
Her otomasyon bir olayla başlar, hizmete dokunarak biter
Apps Script otomasyonunun katmanları
- TetikleyiciForm gönderimi, düzenleme ya da zamanlayıcı fonksiyonu çağırır.
- BetikVeriyi okur, koşulları değerlendirir, ne yapılacağına karar verir.
- HizmetGmail, E-Tablolar ya da Formlar üzerinde iş yapılır.
- SonuçKayıt işlenir, bildirim gider, rapor hazırlanır.
Uygulama: form yanıtını kayda geçirip ekibe haber vermek
Form yanıtlarını bir e-tabloya toplayan bir ekip düşünün. Her yeni yanıtta sorumlu kişiye kısa bir bildirim gitmesi isteniyor. Betik, e-tabloya bağlı olarak oluşturulur ve form gönderimi için bir kurulabilir tetikleyici tanımlanır. Tetikleyici çalıştığında olay nesnesi (e) yanıtı taşır; E-Tablolar sürümünde soru adlarını ve değerlerini içeren namedValues alanı vardır.
Basit bir betik şöyle görünür:
function yeniYanit(e) { var yanit = e.namedValues; var ozet = JSON.stringify(yanit); GmailApp.sendEmail("[email protected]", "Yeni başvuru geldi", ozet); }
Burada olay nesnesi yanıtı verir, GmailApp.sendEmail(alıcı, konu, gövde) ise iletiyi gönderir. Gerçek kullanımda özet yerine hangi soruya ne cevap verildiğini okunur biçimde dizersiniz, yanıta göre farklı kişilere yönlendirirsiniz ve bildirimin hangi satıra ait olduğunu iletiye eklersiniz.
Tetikleyiciyi arayüzden kurabilir ya da ScriptApp.newTrigger ile betikle oluşturabilirsiniz. Değiştirmek gerektiğinde mevcut tetikleyiciyi silip yenisini kurarsınız; güncelleme yoktur.
Zamana bağlı iş: düzenli rapor ve temizlik
Zamana bağlı tetikleyici, kimsenin tuşa basmadığı işler için uygundur: her sabah bekleyen kayıtları sayıp özet göndermek, haftalık bir tabloyu güncellemek, eski satırları arşivlemek. Tetikleyiciyi saatlik, günlük ya da haftalık kurarsınız; belirli bir hafta günü ve saat de verilebilir. Platform başlangıç zamanını bir saat içinde rastgele kaydırabilir, bu yüzden dakikasına kadar kesin saat gerektiren iş için uygun değildir.
E-Tablodan veri okumak için sayfa üzerinde getDataRange ile dolu alanı alır, satır satır döngüyle işlersiniz. Yeni kayıt eklemek için appendRow, sayfanın veri bölgesinin altına bir satır ekler. Gmail tarafında search(sorgu) ile ölçüte uyan ileti dizilerini bulabilirsiniz.
Düzenli çalışan betiklerde "çift işleme" önemli bir risktir. Bir satırı işledikten sonra sütuna "gönderildi" gibi bir işaret yazmak, betik yeniden çalıştığında aynı kişiye aynı iletiyi göndermenizi önler.
Yetki, tetikleyici sahibi ve kotalar
Kurulabilir tetikleyiciler, yetki isteyen hizmetleri çağırabilir ve onu oluşturan kişinin yetkisiyle çalışır; formu başka biri doldursa bile e-posta sizin hesabınızdan gider. Tetikleyiciyi oluşturan hesap kapanır ya da erişimini kaybederse otomasyon durur. Bu nedenle kurumsal akışları kişisel hesap yerine ekip için ayrılmış bir hesapta kurmak daha sağlamdır.
Betik çalışmadan önce gerekli izinleri (kapsamları) kullanıcı onaylar. Gereğinden geniş izin isteyen betiği onaylamadan önce ne yaptığını okumak iyi bir alışkanlıktır.
Kotalar da tasarımın parçasıdır. Günlük alıcı sayısı, tek çalıştırmanın süresi ve tetikleyicilerin günlük toplam çalışma süresi sınırlıdır; sınırlar tüketici hesapları ile Workspace hesapları arasında farklıdır ve Google bunları önceden haber vermeden değiştirebilir. Sınır aşıldığında betik hata verip durur. Toplu işleri parçalara bölmek ve kota dokümantasyonunu düzenli kontrol etmek gerekir.
Sık yapılan hatalar
İlk projelerde aynı hatalar tekrarlanır: • Betiği elle çalıştırıp denemek, ama olay nesnesi (e) olmadan gerçek tetikleyici davranışını sınamamak. Test için gerçek bir form yanıtı göndermek gerekir • Basit bir olay fonksiyonuyla e-posta göndermeye çalışmak; yetki isteyen işler kurulabilir tetikleyici ister • Hata durumunu düşünmemek: tetikleyici başarısız olursa bildirim e-postası yalnızca tetikleyiciyi oluşturan kişiye gider, ekip fark etmez • Aynı tetikleyiciyi yanlışlıkla birden fazla kez kurmak ve her yanıtta çift bildirim göndermek • Gizli bilgileri (anahtar, parola) betiğin içine yazmak
Karmaşık bir iş akışını tek büyük fonksiyonda toplamak da bakım yükünü artırır. Okuma, karar verme ve gönderme adımlarını ayrı fonksiyonlara bölmek hata ayıklamayı kolaylaştırır.
Küçük disiplinler otomasyonu sağlam kılar
İlk projelerde sık hata ve doğrusu
Öğrenme yolu: elle yapılan işten betiğe
Önce kendi iş akışınızdan tek bir tekrarlayan görevi seçin ve adımlarını kâğıda yazın: ne tetikliyor, hangi veri okunuyor, ne yazılıyor, kime haber veriliyor. Kodu yazmadan önce bu tablo hazırsa betik kısa kalır.
Sonra en küçük çalışan sürümü kurun: tek bir form, tek bir e-tablo, tek bir bildirim. Yapay zeka asistanları betik taslağı çıkarmada yardımcı olur, ama ürettikleri kodu satır satır okuyup küçük veriyle denemeden gerçek hesaba bağlamayın. Yöntem adlarını resmî referanstan doğrulayın; kod iskeleti ile gerçek hizmet arasındaki fark çoğu zaman bir yöntem adında saklıdır.
Bu eşiği geçtikten sonra tetikleyiciyi zamana bağlama, birden fazla sayfayı birleştirme ve hata kaydı tutma gibi konulara ilerlenir.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Yapay Zeka ve Otomasyon Uzmanlığı Sertifika Programı'nda Google Workspace otomasyonları ve form, veritabanı, bildirim akışları ayrı bir konu olarak yer alır. Kod yazmadan ilerleyen otomasyon yaklaşımıyla birlikte ele alındığı için, bir akışın hangi noktada hazır araçla hangi noktada betikle çözüleceğini karşılaştırarak öğrenirsiniz.
İlgili Mindset programı
Yapay Zeka ve Otomasyon Uzmanlığı Sertifika Programı - Uygulamalı
Sık sorulan sorular
Apps Script öğrenmek için yazılımcı olmak gerekir mi?
Zorunlu değil, ama temel JavaScript bilgisi gerekir: değişken, döngü, koşul ve fonksiyon. Başlangıç için kısa, tek amaçlı betikler yeterlidir. Kod yazdığınız anda sorulması gereken soru "hangi hizmeti hangi yöntemle çağırıyorum" olduğu için, resmî referansı yanınızda tutmak öğrenmeyi hızlandırır.
Apps Script ile Make ya da Zapier arasında nasıl seçim yapılır?
Akışın büyük bölümü Workspace içindeyse ve veriyi özel biçimde işlemeniz gerekiyorsa Apps Script esneklik sağlar. Farklı hizmetleri, yani CRM, mesajlaşma ve yapay zeka araçlarını görsel olarak bağlamak istiyorsanız hazır araçlar daha hızlıdır. Birçok ekip ikisini birlikte kullanır.
Betik başka biri formu doldurduğunda kimin hesabıyla çalışır?
Kurulabilir tetikleyiciler, tetikleyiciyi oluşturan kişinin yetkisiyle çalışır. Formu kim doldurursa doldursun, e-posta ve dosya işlemleri o hesabın yetkisiyle yapılır. Bu yüzden tetikleyiciyi kimin kurduğu ve o hesabın ekipten ayrılması durumunda ne olacağı baştan planlanmalıdır.
Betiğim neden zamanında çalışmadı?
Zamana bağlı tetikleyiciler başlangıç zamanını bir saatlik aralıkta kaydırabilir, yani saniyesine kadar kesin değildir. Ayrıca kota aşımı ya da yetki sorunu betiği durdurmuş olabilir. Yürütme kayıtlarına bakmak, tetikleyiciyi oluşturan kişinin e-postasındaki hata bildirimini okumak ilk adımdır.
Betik ile gönderilen form yanıtı neden gönderim tetikleyicisini çalıştırmıyor?
Betik yürütmeleri ve API istekleri tetikleyici başlatmaz; dokümantasyon, bir formun yanıtını betikle göndermenin o formun gönderim tetikleyicisini çalıştırmadığını belirtir. Zincirleme akışta sonraki adımı doğrudan fonksiyon çağırarak ya da kendi zamanlayıcısıyla tetiklemek gerekir.