{"id":37214,"date":"2025-12-29T00:00:46","date_gmt":"2025-12-28T21:00:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/"},"modified":"2025-12-29T00:00:46","modified_gmt":"2025-12-28T21:00:46","slug":"node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/","title":{"rendered":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi"},"content":{"rendered":"<h2>Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi<\/h2>\n<p>Y\u0131lba\u015f\u0131, sevdiklerimizle ba\u011flar\u0131m\u0131z\u0131 g\u00fc\u00e7lendirdi\u011fimiz, yeni umutlarla dolu bir ba\u015flang\u0131\u00e7 zaman\u0131d\u0131r. Ancak onlarca, hatta y\u00fczlerce ki\u015fiye tek tek y\u0131lba\u015f\u0131 mesaj\u0131 g\u00f6ndermek, \u00f6zellikle yo\u011fun bir program\u0131n\u0131z varsa olduk\u00e7a zahmetli olabilir. \u0130\u015fte tam bu noktada teknoloji imdad\u0131m\u0131za yeti\u015fiyor! Bu makalede, Node.js kullanarak WhatsApp \u00fczerinden y\u0131lba\u015f\u0131 tebriklerinizi nas\u0131l otomatikle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hem zamandan tasarruf edecek hem de ki\u015fiselle\u015ftirilmi\u015f mesajlarla sevdiklerinize \u00f6zel hissettireceksiniz.<\/p>\n<h3>WhatsApp Mesaj Otomasyonuna Giri\u015f ve Neden \u0130htiya\u00e7 Duyar\u0131z?<\/h3>\n<p>Modern ileti\u015fim \u00e7a\u011f\u0131nda, anl\u0131k mesajla\u015fma platformlar\u0131 hayat\u0131m\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 haline geldi. WhatsApp, d\u00fcnya genelinde milyarlarca kullan\u0131c\u0131s\u0131yla zirvede yer al\u0131yor. \u00d6zel g\u00fcnlerde, \u00f6zellikle y\u0131lba\u015f\u0131nda, bu platform \u00fczerinden sevdiklerimize iyi dileklerimizi iletmek bir gelenek. Ancak bu s\u00fcrecin manuel olarak y\u00fcr\u00fct\u00fclmesi, hem zaman al\u0131c\u0131 hem de yorucu olabilir. Her bir ki\u015fiye \u00f6zel mesaj yazmak, bazen y\u00fczlerce ki\u015fiye ula\u015fmaya \u00e7al\u0131\u015f\u0131rken imkans\u0131z hale gelebilir. \u0130\u015fte bu noktada otomasyon devreye girer.<\/p>\n<h4>Y\u0131lba\u015f\u0131 Tebriklerinin \u00d6nemi ve Zorluklar\u0131<\/h4>\n<p>Y\u0131lba\u015f\u0131 tebrikleri, sosyal ba\u011flar\u0131m\u0131z\u0131 g\u00fc\u00e7lendiren, dostluk ve aile ili\u015fkilerini peki\u015ftiren \u00f6nemli bir jesttir. Ancak bu tebrikleri manuel olarak g\u00f6ndermenin baz\u0131 zorluklar\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>Zaman Kayb\u0131:<\/strong> Her bir ki\u015fiye ayr\u0131 ayr\u0131 mesaj yazmak ve g\u00f6ndermek ciddi zaman al\u0131r.<\/li>\n<li><strong>Unutkanl\u0131k Riski:<\/strong> Yo\u011funluktan dolay\u0131 baz\u0131 ki\u015fileri atlama veya unutma riski bulunur.<\/li>\n<li><strong>Tekrarlayan \u0130\u015flem:<\/strong> Her mesaj\u0131 ki\u015fiselle\u015ftirmek isteseniz bile, temel dilekler genellikle ayn\u0131d\u0131r ve bu durum tekrarlayan bir i\u015f y\u00fck\u00fc olu\u015fturur.<\/li>\n<\/ul>\n<h4>Otomasyonun Sa\u011flad\u0131\u011f\u0131 Avantajlar<\/h4>\n<p>WhatsApp mesaj otomasyonu, bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar:<\/p>\n<ul>\n<li><strong>Zaman Tasarrufu:<\/strong> Mesajlar\u0131n\u0131z\u0131 \u00f6nceden haz\u0131rlay\u0131p planlayarak, g\u00f6nderme i\u015flemini saniyeler i\u00e7inde tamamlayabilirsiniz.<\/li>\n<li><strong>Ki\u015fiselle\u015ftirme:<\/strong> Dinamik \u015fablonlar kullanarak her mesaja al\u0131c\u0131n\u0131n ad\u0131n\u0131 ekleyebilir, mesajlar\u0131 daha ki\u015fisel hale getirebilirsiniz.<\/li>\n<li><strong>Kapsaml\u0131 Eri\u015fim:<\/strong> Y\u00fczlerce ki\u015fiye ayn\u0131 anda, hatas\u0131z bir \u015fekilde ula\u015fabilirsiniz.<\/li>\n<li><strong>Verimlilik:<\/strong> Tekrarlayan g\u00f6revleri ortadan kald\u0131rarak daha \u00f6nemli i\u015flere odaklanman\u0131z\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h4>Kullan\u0131m Senaryolar\u0131 ve Dikkat Edilmesi Gerekenler<\/h4>\n<p>Bu otomasyon sadece y\u0131lba\u015f\u0131 tebrikleri i\u00e7in de\u011fil, do\u011fum g\u00fcn\u00fc, bayram kutlamalar\u0131, etkinlik hat\u0131rlatmalar\u0131 veya k\u00fc\u00e7\u00fck i\u015fletmelerin duyurular\u0131 gibi bir\u00e7ok senaryoda kullan\u0131labilir. Ancak otomasyon kullan\u0131rken baz\u0131 etik ve yasal s\u0131n\u0131rlamalara dikkat etmek \u00f6nemlidir. \u00d6zellikle ticari ama\u00e7l\u0131 toplu mesajla\u015fmalarda WhatsApp&#8217;\u0131n hizmet ko\u015fullar\u0131na ve yerel KVKK gibi yasalara uymak zorunludur. Ki\u015fisel kullan\u0131mlarda bile, al\u0131c\u0131lar\u0131n r\u0131zas\u0131 ve mesaj s\u0131kl\u0131\u011f\u0131 gibi fakt\u00f6rler g\u00f6z \u00f6n\u00fcnde bulundurulmal\u0131d\u0131r.<\/p>\n<h3>Gerekli Ara\u00e7lar ve Node.js Ortam Kurulumu<\/h3>\n<p>Bu otomasyon projesini hayata ge\u00e7irmek i\u00e7in baz\u0131 temel ara\u00e7lara ve bir geli\u015ftirme ortam\u0131na ihtiyac\u0131m\u0131z olacak. Node.js, JavaScript&#8217;i sunucu taraf\u0131nda \u00e7al\u0131\u015ft\u0131rmam\u0131z\u0131 sa\u011flayan bir \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131d\u0131r ve bu t\u00fcr otomasyon g\u00f6revleri i\u00e7in idealdir.<\/p>\n<h4>Node.js ve npm Kurulumu<\/h4>\n<p>\u00d6ncelikle bilgisayar\u0131n\u0131zda Node.js&#8217;in kurulu olmas\u0131 gerekmektedir. Node.js kurulumu ile birlikte npm (Node Package Manager) de otomatik olarak kurulur. npm, Node.js projelerinde ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<ol>\n<li>Node.js resmi web sitesine (<a href=\"https:\/\/nodejs.org\/\" target=\"_blank\">nodejs.org<\/a>) gidin.<\/li>\n<li>\u0130\u015fletim sisteminize uygun &#8220;LTS&#8221; (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fcn\u00fc indirip kurun.<\/li>\n<li>Kurulumu do\u011frulamak i\u00e7in komut istemcisini (CMD, Terminal, PowerShell) a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">node -v\nnpm -v\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar Node.js ve npm s\u00fcr\u00fcmlerini g\u00f6stermelidir.<\/p>\n<h4>Proje Yap\u0131land\u0131rmas\u0131 ve Temel Ba\u011f\u0131ml\u0131l\u0131klar<\/h4>\n<p>\u015eimdi projemiz i\u00e7in bir dizin olu\u015ftural\u0131m ve temel yap\u0131land\u0131rmay\u0131 yapal\u0131m.<\/p>\n<ol>\n<li>Yeni bir proje klas\u00f6r\u00fc olu\u015fturun:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">mkdir whatsapp-yilbasi-otomasyonu\ncd whatsapp-yilbasi-otomasyonu\n<\/pre>\n<p><\/code><\/p>\n<ol start=\"2\">\n<li>Projenizi ba\u015flat\u0131n. Bu komut, projeniz i\u00e7in bir <code>package.json<\/code> dosyas\u0131 olu\u015fturacakt\u0131r. Bu dosya, projenizin meta verilerini ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 i\u00e7erir.<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npm init -y\n<\/pre>\n<p><\/code><\/p>\n<p><code>-y<\/code> parametresi, t\u00fcm sorular\u0131 varsay\u0131lan cevaplarla ge\u00e7menizi sa\u011flar.<\/p>\n<h4>Geli\u015ftirme Ortam\u0131 Haz\u0131rl\u0131\u011f\u0131<\/h4>\n<p>Kod yazmak i\u00e7in bir kod d\u00fczenleyiciye ihtiyac\u0131n\u0131z olacak. Visual Studio Code (VS Code), Node.js geli\u015ftiricileri aras\u0131nda olduk\u00e7a pop\u00fcler ve g\u00fc\u00e7l\u00fc bir se\u00e7enektir. \u00dccretsizdir ve bir\u00e7ok eklenti deste\u011fi sunar.<\/p>\n<ul>\n<li>VS Code'u (<a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\">code.visualstudio.com<\/a>) indirip kurun.<\/li>\n<li>Proje klas\u00f6r\u00fcn\u00fcz\u00fc VS Code'da a\u00e7\u0131n (<code>code .<\/code> komutu ile mevcut dizini a\u00e7abilirsiniz).<\/li>\n<\/ul>\n<h3>WhatsApp API\/K\u00fct\u00fcphane Se\u00e7imi: whatsapp-web.js ile Tan\u0131\u015fma<\/h3>\n<p>WhatsApp mesaj otomasyonu i\u00e7in birka\u00e7 farkl\u0131 yakla\u015f\u0131m bulunmaktad\u0131r. Bunlar aras\u0131nda resmi WhatsApp Business API'si ve \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphaneler \u00f6ne \u00e7\u0131kar.<\/p>\n<h4>Farkl\u0131 Yakla\u015f\u0131mlar: Resmi API vs. \u00dc\u00e7\u00fcnc\u00fc Parti K\u00fct\u00fcphaneler<\/h4>\n<ul>\n<li><strong>WhatsApp Business API:<\/strong> \u0130\u015fletmeler i\u00e7in tasarlanm\u0131\u015f resmi bir \u00e7\u00f6z\u00fcmd\u00fcr. G\u00fcvenli, \u00f6l\u00e7eklenebilir ve desteklidir ancak \u00fccretlidir ve onay s\u00fcre\u00e7leri gerektirir. K\u00fc\u00e7\u00fck \u00e7apl\u0131 ki\u015fisel otomasyonlar i\u00e7in genellikle a\u015f\u0131r\u0131ya ka\u00e7an bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/li>\n<li><strong>\u00dc\u00e7\u00fcnc\u00fc Parti K\u00fct\u00fcphaneler (\u00f6rn. whatsapp-web.js):<\/strong> WhatsApp Web aray\u00fcz\u00fcn\u00fc taklit ederek \u00e7al\u0131\u015fan a\u00e7\u0131k kaynakl\u0131 k\u00fct\u00fcphanelerdir. \u00dccretsizdir ve kurulumu nispeten kolayd\u0131r. Ancak resmi olmayan \u00e7\u00f6z\u00fcmler olduklar\u0131 i\u00e7in WhatsApp'\u0131n hizmet ko\u015fullar\u0131n\u0131 ihlal etme riski ta\u015f\u0131r ve hesap yasaklanmas\u0131 gibi potansiyel riskleri vard\u0131r. Ki\u015fisel kullan\u0131m ve d\u00fc\u015f\u00fck hacimli mesajla\u015fmalar i\u00e7in pratik bir se\u00e7enek olabilir.<\/li>\n<\/ul>\n<h4>whatsapp-web.js Neden Pop\u00fcler?<\/h4>\n<p><code>whatsapp-web.js<\/code>, Node.js tabanl\u0131, Chromium tabanl\u0131 taray\u0131c\u0131lar\u0131 (Puppeteer arac\u0131l\u0131\u011f\u0131yla) kullanarak WhatsApp Web'i kontrol eden pop\u00fcler bir k\u00fct\u00fcphanedir. Pop\u00fclerli\u011finin nedenleri:<\/p>\n<ul>\n<li><strong>\u00dccretsiz ve A\u00e7\u0131k Kaynak:<\/strong> Herkesin eri\u015febilece\u011fi ve geli\u015ftirebilece\u011fi bir projedir.<\/li>\n<li><strong>Kolay Kurulum ve Kullan\u0131m:<\/strong> Di\u011fer resmi API'lere g\u00f6re \u00e7ok daha h\u0131zl\u0131 bir \u015fekilde devreye al\u0131nabilir.<\/li>\n<li><strong>Geni\u015f \u00d6zellik Seti:<\/strong> Mesaj g\u00f6nderme, alma, medya payla\u015f\u0131m\u0131, grup y\u00f6netimi gibi bir\u00e7ok WhatsApp Web \u00f6zelli\u011fini destekler.<\/li>\n<li><strong>Aktif Topluluk:<\/strong> Sorun giderme ve destek i\u00e7in geni\u015f bir geli\u015ftirici toplulu\u011fu bulunur.<\/li>\n<\/ul>\n<h4>K\u00fct\u00fcphanenin Kurulumu ve Temel Kullan\u0131m\u0131<\/h4>\n<p>Projemize <code>whatsapp-web.js<\/code> k\u00fct\u00fcphanesini kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">npm install whatsapp-web.js qrcode-terminal\n<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>qrcode-terminal<\/code> paketi, WhatsApp Web oturum a\u00e7mak i\u00e7in gerekli olan QR kodu terminalde g\u00f6stermemize yard\u0131mc\u0131 olacak. \u015eimdi temel bir <code>index.js<\/code> dosyas\u0131 olu\u015ftural\u0131m ve k\u00fct\u00fcphaneyi ba\u015flatal\u0131m:<\/p>\n<pre><code class=\"language-javascript\">\/\/ index.js\nconst { Client } = require('whatsapp-web.js');\nconst qrcode = require('qrcode-terminal');\n\nconst client = new Client();\n\nclient.on('qr', qr => {\n    qrcode.generate(qr, { small: true });\n    console.log('QR RECEIVED', qr);\n});\n\nclient.on('ready', () => {\n    console.log('Client is ready!');\n});\n\nclient.on('message', msg => {\n    if (msg.body == '!ping') {\n        msg.reply('pong');\n    }\n});\n\nclient.initialize();\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kod, WhatsApp istemcisini ba\u015flat\u0131r, bir QR kodu ald\u0131\u011f\u0131nda terminalde g\u00f6sterir ve istemci haz\u0131r oldu\u011funda bir mesaj yazd\u0131r\u0131r. Ayr\u0131ca, '!ping' mesaj\u0131na 'pong' ile yan\u0131t veren basit bir mesaj dinleyicisi de i\u00e7erir.<\/p>\n<h3>Ki\u015fi Listesi Y\u00f6netimi ve Mesaj \u015eablonlar\u0131 Olu\u015fturma<\/h3>\n<p>Otomasyonumuzun kalbi, kime ne mesaj g\u00f6nderece\u011fimizi bilmesidir. Bu b\u00f6l\u00fcmde, ki\u015fi listemizi nas\u0131l haz\u0131rlayaca\u011f\u0131m\u0131z\u0131 ve dinamik mesaj \u015fablonlar\u0131 olu\u015fturarak ki\u015fiselle\u015ftirmeyi nas\u0131l sa\u011flayaca\u011f\u0131m\u0131z\u0131 ele alaca\u011f\u0131z.<\/p>\n<h4>Ki\u015fi Listesini Haz\u0131rlama (CSV\/JSON)<\/h4>\n<p>Ki\u015fi listenizi y\u00f6netmek i\u00e7in en pratik y\u00f6ntemlerden biri, verileri yap\u0131land\u0131r\u0131lm\u0131\u015f bir formatta tutmakt\u0131r. JSON (JavaScript Object Notation) veya CSV (Comma Separated Values) bu i\u015f i\u00e7in idealdir. JSON, \u00f6zellikle Node.js ile \u00e7al\u0131\u015f\u0131rken daha kolay entegre edilebilir.<\/p>\n<p>\u00d6rnek bir <code>contacts.json<\/code> dosyas\u0131:<\/p>\n<pre><code class=\"language-json\">\/\/ contacts.json\n[\n    {\n        \"name\": \"Ay\u015fe\",\n        \"phone\": \"905XXXXXXXXX\"\n    },\n    {\n        \"name\": \"Mehmet\",\n        \"phone\": \"905YYYYYYYYY\"\n    },\n    {\n        \"name\": \"Zeynep\",\n        \"phone\": \"905ZZZZZZZZZ\"\n    }\n]\n<\/pre>\n<p><\/code><\/p>\n<p>Telefon numaralar\u0131n\u0131n ba\u015f\u0131nda \u00fclke kodu (T\u00fcrkiye i\u00e7in 90) olmal\u0131 ve genellikle bo\u015fluk veya \u00f6zel karakter i\u00e7ermemelidir. WhatsApp'\u0131n bekledi\u011fi format genellikle budur.<\/p>\n<h4>Dinamik Mesaj \u015eablonlar\u0131 Olu\u015fturma<\/h4>\n<p>Mesajlar\u0131n\u0131z\u0131 ki\u015fiselle\u015ftirmek i\u00e7in dinamik \u015fablonlar kullanabilirsiniz. Bu, her al\u0131c\u0131 i\u00e7in farkl\u0131 bir isim veya \u00f6zel bir not eklemenizi sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">\/\/ messageTemplates.js\nconst generateMessage = (name) => {\n    const messages = [\n        <code>Merhaba ${name}, yeni y\u0131l\u0131n sana sa\u011fl\u0131k, mutluluk ve ba\u015far\u0131 getirmesini dilerim!<\/code>,\n        <code>Sevgili ${name}, yeni y\u0131l\u0131n t\u00fcm dileklerini ger\u00e7ekle\u015ftirmesi dile\u011fiyle, mutlu y\u0131llar!<\/code>,\n        <code>Can\u0131m ${name}, yeni y\u0131l\u0131n sana ve sevdiklerine huzur ve ne\u015fe getirmesini dilerim. Mutlu y\u0131llar!<\/code>,\n        <code>K\u0131ymetli ${name}, yeni y\u0131l\u0131n her an\u0131n\u0131n g\u00fczelliklerle dolu olmas\u0131n\u0131 dilerim. \u0130yi seneler!<\/code>\n    ];\n    \/\/ Rastgele bir mesaj se\u00e7mek i\u00e7in\n    return messages[Math.floor(Math.random() * messages.length)];\n};\n\nmodule.exports = { generateMessage };\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, al\u0131c\u0131n\u0131n ad\u0131na g\u00f6re farkl\u0131 mesajlar \u00fcretebilen basit bir fonksiyon sunar. \u0130sterseniz daha karma\u015f\u0131k \u015fablonlar veya farkl\u0131 mesaj kategorileri de ekleyebilirsiniz.<\/p>\n<h4>Ki\u015fi Verilerini Node.js Uygulamas\u0131na Entegre Etme<\/h4>\n<p><code>contacts.json<\/code> dosyas\u0131n\u0131 Node.js uygulaman\u0131za okumak olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-javascript\">\/\/ index.js (devam\u0131)\nconst fs = require('fs');\nconst { generateMessage } = require('.\/messageTemplates'); \/\/ messageTemplates dosyas\u0131n\u0131 import et\n\n\/\/ ... (client tan\u0131m\u0131 ve event listener'lar)\n\nclient.on('ready', async () => {\n    console.log('Client is ready!');\n\n    \/\/ Ki\u015fi listesini oku\n    const contacts = JSON.parse(fs.readFileSync('.\/contacts.json', 'utf-8'));\n    console.log(<code>${contacts.length} ki\u015fi bulundu.<\/code>);\n\n    \/\/ Mesaj g\u00f6nderme fonksiyonunu \u00e7a\u011f\u0131r (bir sonraki b\u00f6l\u00fcmde detayland\u0131r\u0131lacak)\n    \/\/ await sendNewYearGreetings(contacts); \n});\n\n\/\/ ...\n<\/pre>\n<p><\/code><\/p>\n<p>Bu sayede ki\u015fi verilerinizi uygulamaya aktarm\u0131\u015f olursunuz ve bu verileri mesaj g\u00f6nderme d\u00f6ng\u00fcs\u00fcnde kullanabilirsiniz.<\/p>\n<h3>Node.js ile Otomasyon Mant\u0131\u011f\u0131n\u0131 Geli\u015ftirme ve Kod \u00d6rnekleri<\/h3>\n<p>\u015eimdi projemizin ana mant\u0131\u011f\u0131n\u0131, yani WhatsApp \u00fczerinden mesaj g\u00f6nderme s\u00fcrecini kodlamaya ge\u00e7elim. Bu b\u00f6l\u00fcmde, <code>whatsapp-web.js<\/code> istemcisini nas\u0131l ba\u015flataca\u011f\u0131m\u0131z\u0131, QR kodu ile oturum a\u00e7may\u0131 ve ki\u015fi listemizdeki herkese nas\u0131l mesaj g\u00f6nderece\u011fimizi detayl\u0131ca inceleyece\u011fiz.<\/p>\n<h4>whatsapp-web.js \u0130stemcisini Ba\u015flatma<\/h4>\n<p>\u00d6nceki b\u00f6l\u00fcmde temel istemci kurulumunu yapm\u0131\u015ft\u0131k. \u015eimdi, oturum bilgilerini kal\u0131c\u0131 hale getirmek i\u00e7in <code>LocalAuth<\/code> eklentisini ekleyelim. Bu, her seferinde QR kodu taramak zorunda kalmaman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">\/\/ index.js\nconst { Client, LocalAuth } = require('whatsapp-web.js'); \/\/ LocalAuth'\u0131 ekle\nconst qrcode = require('qrcode-terminal');\nconst fs = require('fs');\nconst { generateMessage } = require('.\/messageTemplates');\n\nconst client = new Client({\n    authStrategy: new LocalAuth(), \/\/ Oturum bilgilerini kaydetmek i\u00e7in\n    puppeteer: {\n        args: ['--no-sandbox'], \/\/ Baz\u0131 Linux ortamlar\u0131 i\u00e7in gerekli olabilir\n    }\n});\n\nclient.on('qr', qr => {\n    qrcode.generate(qr, { small: true });\n    console.log('WhatsApp Web i\u00e7in QR kod tarat\u0131l\u0131yor...');\n});\n\nclient.on('ready', async () => {\n    console.log('WhatsApp istemcisi haz\u0131r!');\n    \/\/ ... (mesaj g\u00f6nderme mant\u0131\u011f\u0131 buraya gelecek)\n});\n\nclient.on('authenticated', () => {\n    console.log('Kimlik do\u011frulama ba\u015far\u0131l\u0131!');\n});\n\nclient.on('auth_failure', msg => {\n    console.error('Kimlik do\u011frulama hatas\u0131', msg);\n});\n\nclient.on('disconnected', (reason) => {\n    console.log('WhatsApp ba\u011flant\u0131s\u0131 kesildi!', reason);\n    client.initialize(); \/\/ Ba\u011flant\u0131 koparsa yeniden ba\u015flatmay\u0131 dene\n});\n\nclient.initialize();\n<\/pre>\n<p><\/code><\/p>\n<h4>QR Kod ile Oturum A\u00e7ma<\/h4>\n<p>Uygulamay\u0131 ilk \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda veya oturum bilgileriniz silindi\u011finde, terminalde bir QR kodu belirecektir. Bu kodu telefonunuzdaki WhatsApp uygulamas\u0131ndan \"Ba\u011fl\u0131 Cihazlar\" b\u00f6l\u00fcm\u00fcnden tarayarak oturum a\u00e7man\u0131z gerekmektedir. Oturum a\u00e7t\u0131ktan sonra <code>LocalAuth<\/code> sayesinde bilgileriniz kaydedilecek ve sonraki \u00e7al\u0131\u015ft\u0131rmalarda tekrar tarama yapman\u0131za gerek kalmayacakt\u0131r.<\/p>\n<h4>Mesaj G\u00f6nderme Fonksiyonu ve D\u00f6ng\u00fcs\u00fc<\/h4>\n<p>\u015eimdi ki\u015fi listemizdeki her bir ki\u015fiye mesaj g\u00f6nderecek ana fonksiyonu yazal\u0131m. Bu fonksiyon, her mesajdan sonra k\u0131sa bir gecikme ekleyerek WhatsApp taraf\u0131ndan spam olarak alg\u0131lanma riskini azaltacakt\u0131r.<\/p>\n<pre><code class=\"language-javascript\">\/\/ index.js (devam\u0131)\n\nconst DELAY_MS = 3000; \/\/ Her mesaj aras\u0131nda 3 saniye bekleme\n\nasync function sendNewYearGreetings(contacts) {\n    for (const contact of contacts) {\n        const { name, phone } = contact;\n        const chatId = <code>${phone}@c.us<\/code>; \/\/ WhatsApp chat ID format\u0131\n\n        try {\n            const message = generateMessage(name);\n            await client.sendMessage(chatId, message);\n            console.log(<code>Mesaj \"${name}\" (${phone}) ki\u015fisine ba\u015far\u0131yla g\u00f6nderildi.<\/code>);\n        } catch (error) {\n            console.error(<code>Mesaj \"${name}\" (${phone}) ki\u015fisine g\u00f6nderilemedi:<\/code>, error.message);\n        }\n\n        await new Promise(resolve => setTimeout(resolve, DELAY_MS)); \/\/ Gecikme\n    }\n    console.log('T\u00fcm y\u0131lba\u015f\u0131 mesajlar\u0131 g\u00f6nderme i\u015flemi tamamland\u0131!');\n}\n\nclient.on('ready', async () => {\n    console.log('WhatsApp istemcisi haz\u0131r!');\n\n    const contacts = JSON.parse(fs.readFileSync('.\/contacts.json', 'utf-8'));\n    console.log(<code>${contacts.length} ki\u015fi bulundu.<\/code>);\n\n    await sendNewYearGreetings(contacts);\n});\n<\/pre>\n<p><\/code><\/p>\n<h4>Gecikmeler ve Hata Y\u00f6netimi<\/h4>\n<p>Yukar\u0131daki kodda <code>DELAY_MS<\/code> de\u011fi\u015fkeni ile her mesaj aras\u0131na bir gecikme ekledik. Bu, WhatsApp'\u0131n otomatik sistemleri taraf\u0131ndan bot olarak alg\u0131lanma riskini azaltmak i\u00e7in kritik \u00f6neme sahiptir. Gecikme s\u00fcresini kendi risk tolerans\u0131n\u0131za ve g\u00f6nderilecek mesaj say\u0131s\u0131na g\u00f6re ayarlayabilirsiniz. Genellikle 2-5 saniye aras\u0131 bir gecikme \u00f6nerilir.<\/p>\n<p>Ayr\u0131ca, <code>try...catch<\/code> bloklar\u0131 kullanarak mesaj g\u00f6nderme s\u0131ras\u0131nda olu\u015fabilecek hatalar\u0131 yakalad\u0131k. Bir mesaj g\u00f6nderilemezse, uygulama \u00e7\u00f6kmek yerine hatay\u0131 konsola yazd\u0131r\u0131r ve di\u011fer mesajlar\u0131 g\u00f6ndermeye devam eder. Bu, otomasyonunuzun daha sa\u011flam olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Uygulamay\u0131 \u00c7al\u0131\u015ft\u0131rma, Test Etme ve G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Art\u0131k kodumuz haz\u0131r oldu\u011funa g\u00f6re, uygulamam\u0131z\u0131 nas\u0131l \u00e7al\u0131\u015ft\u0131raca\u011f\u0131m\u0131z\u0131, test edece\u011fimizi ve potansiyel g\u00fcvenlik risklerine kar\u015f\u0131 nas\u0131l \u00f6nlemler alaca\u011f\u0131m\u0131z\u0131 inceleyelim.<\/p>\n<h4>Uygulamay\u0131 Yerel Olarak \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>Uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in terminali a\u00e7\u0131n ve proje dizininizde a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">node index.js\n<\/pre>\n<p><\/code><\/p>\n<p>\u0130lk \u00e7al\u0131\u015ft\u0131rmada terminalde bir QR kodu belirecektir. Telefonunuzdaki WhatsApp uygulamas\u0131n\u0131 a\u00e7\u0131n, \"Ayarlar\" > \"Ba\u011fl\u0131 Cihazlar\" b\u00f6l\u00fcm\u00fcne gidin ve QR kodu taray\u0131n. Oturum a\u00e7t\u0131ktan sonra, \"WhatsApp istemcisi haz\u0131r!\" mesaj\u0131n\u0131 ve ard\u0131ndan mesaj g\u00f6nderme loglar\u0131n\u0131 g\u00f6rmeye ba\u015flayacaks\u0131n\u0131z.<\/p>\n<p>E\u011fer <code>--no-sandbox<\/code> hatas\u0131 al\u0131rsan\u0131z, bu genellikle Linux tabanl\u0131 sistemlerde Puppeteer'\u0131n root kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131ndan kaynaklan\u0131r. \u00c7\u00f6z\u00fcm olarak, <code>puppeteer<\/code> konfig\u00fcrasyonuna <code>args: ['--no-sandbox']<\/code> ekleyebilirsiniz (yukar\u0131daki kodda eklenmi\u015ftir).<\/p>\n<h4>Test S\u00fcreci ve Hata Ay\u0131klama<\/h4>\n<p>Toplu mesaj g\u00f6ndermeden \u00f6nce, uygulaman\u0131z\u0131 k\u00fc\u00e7\u00fck bir test grubuyla denemeniz \u015fiddetle tavsiye edilir. Kendi telefon numaran\u0131z\u0131 ve birka\u00e7 arkada\u015f\u0131n\u0131z\u0131n numaras\u0131n\u0131 i\u00e7eren k\u00fc\u00e7\u00fck bir <code>contacts.json<\/code> dosyas\u0131 olu\u015fturun. Mesajlar\u0131n do\u011fru formatta ve beklenen \u015fekilde ula\u015ft\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>Olas\u0131 hatalar:<\/p>\n<ul>\n<li><strong>Telefon Numaras\u0131 Format\u0131 Hatas\u0131:<\/strong> Numaralar\u0131n ba\u015f\u0131nda \u00fclke kodu (\u00f6rn. 90) oldu\u011fundan ve \u00f6zel karakter i\u00e7ermedi\u011finden emin olun.<\/li>\n<li><strong>A\u011f Ba\u011flant\u0131s\u0131 Sorunlar\u0131:<\/strong> \u0130nternet ba\u011flant\u0131n\u0131z\u0131n stabil oldu\u011fundan emin olun.<\/li>\n<li><strong>WhatsApp Web Oturum Sorunlar\u0131:<\/strong> Telefonunuzun WhatsApp Web'e ba\u011fl\u0131 oldu\u011fundan ve ba\u011flant\u0131n\u0131n kesilmedi\u011finden emin olun.<\/li>\n<\/ul>\n<p>Hata ay\u0131klama i\u00e7in konsol \u00e7\u0131kt\u0131lar\u0131n\u0131 dikkatlice takip edin. <code>console.log()<\/code> kullanarak de\u011fi\u015fkenlerin de\u011ferlerini veya kodun belirli noktalar\u0131na ula\u015f\u0131p ula\u015fmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz.<\/p>\n<h4>G\u00fcvenlik ve Gizlilik Konusunda \u00d6neriler<\/h4>\n<p>WhatsApp otomasyonu kullan\u0131rken baz\u0131 \u00f6nemli g\u00fcvenlik ve gizlilik konular\u0131na dikkat etmek gereklidir:<\/p>\n<ul>\n<li><strong>Hesap Yasaklanma Riski:<\/strong> WhatsApp, otomasyon ara\u00e7lar\u0131n\u0131n kullan\u0131m\u0131n\u0131 hizmet ko\u015fullar\u0131na ayk\u0131r\u0131 bulabilir. A\u015f\u0131r\u0131 mesaj g\u00f6nderme, spam benzeri davran\u0131\u015flar veya \u00e7ok say\u0131da bilinmeyen numaraya mesaj g\u00f6nderme, hesab\u0131n\u0131z\u0131n ge\u00e7ici veya kal\u0131c\u0131 olarak yasaklanmas\u0131na neden olabilir. Bu riski minimize etmek i\u00e7in makul gecikmeler kullan\u0131n ve yaln\u0131zca tan\u0131d\u0131\u011f\u0131n\u0131z ki\u015filere mesaj g\u00f6nderin.<\/li>\n<li><strong>Veri G\u00fcvenli\u011fi:<\/strong> Ki\u015fi listenizi ve di\u011fer hassas verileri g\u00fcvenli bir \u015fekilde saklay\u0131n. <code>contacts.json<\/code> gibi dosyalar\u0131 herkese a\u00e7\u0131k depolarda (\u00f6rn. GitHub) payla\u015fmaktan ka\u00e7\u0131n\u0131n.<\/li>\n<li><strong>Sorumluluk:<\/strong> G\u00f6nderdi\u011finiz mesajlar\u0131n i\u00e7eri\u011finden siz sorumlusunuz. Yasalara ve etik kurallara uygun mesajlar g\u00f6nderdi\u011finizden emin olun.<\/li>\n<li><strong>G\u00fcncellemeler:<\/strong> <code>whatsapp-web.js<\/code> gibi \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphaneler s\u00fcrekli g\u00fcncellenir. WhatsApp'\u0131n kendi g\u00fcncellemeleri, k\u00fct\u00fcphanenin \u00e7al\u0131\u015fma \u015feklinde de\u011fi\u015fikliklere neden olabilir. Bu nedenle k\u00fct\u00fcphaneyi d\u00fczenli olarak g\u00fcncellemek ve olas\u0131 uyumsuzluklara kar\u015f\u0131 haz\u0131rl\u0131kl\u0131 olmak \u00f6nemlidir.<\/li>\n<\/ul>\n<h3>Sonu\u00e7 ve Gelecek Ad\u0131mlar<\/h3>\n<p>Bu makalede, Node.js ve <code>whatsapp-web.js<\/code> k\u00fct\u00fcphanesini kullanarak y\u0131lba\u015f\u0131 tebriklerini otomatikle\u015ftirme s\u00fcrecini detayl\u0131 bir \u015fekilde ele ald\u0131k. Gerekli ara\u00e7lar\u0131n kurulumundan, ki\u015fi listesi y\u00f6netimine, dinamik mesaj \u015fablonlar\u0131 olu\u015fturmaktan, otomasyon mant\u0131\u011f\u0131n\u0131 kodlamaya ve uygulamay\u0131 g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmaya kadar t\u00fcm ad\u0131mlar\u0131 \u00f6\u011frendiniz. Bu otomasyon, \u00f6zellikle \u00f6zel g\u00fcnlerdeki ileti\u015fim y\u00fck\u00fcn\u00fcz\u00fc hafifleterek size zaman kazand\u0131racak ve sevdiklerinizle daha etkili bir \u015fekilde ba\u011flant\u0131 kurman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h4>Otomasyonun Getirdi\u011fi Kolayl\u0131klar<\/h4>\n<p>Y\u0131lba\u015f\u0131 mesaj\u0131 otomasyonu, sadece bir ba\u015flang\u0131\u00e7. Bu t\u00fcr ara\u00e7lar, g\u00fcnl\u00fck hayat\u0131m\u0131zdaki tekrarlayan bir\u00e7ok g\u00f6revi basitle\u015ftirmek i\u00e7in kullan\u0131labilir. \u0130ster ki\u015fisel hat\u0131rlat\u0131c\u0131lar, ister k\u00fc\u00e7\u00fck bir i\u015fletme i\u00e7in duyurular olsun, otomasyonun potansiyeli olduk\u00e7a geni\u015ftir. En b\u00fcy\u00fck kolayl\u0131\u011f\u0131, manuel olarak yap\u0131lmas\u0131 gereken s\u0131k\u0131c\u0131 ve zaman al\u0131c\u0131 g\u00f6revleri ortadan kald\u0131rmas\u0131d\u0131r.<\/p>\n<h4>Uygulamay\u0131 Geli\u015ftirme Potansiyeli<\/h4>\n<p>Bu projeyi daha da geli\u015ftirmek i\u00e7in bir\u00e7ok yol bulunmaktad\u0131r:<\/p>\n<ul>\n<li><strong>Kullan\u0131c\u0131 Aray\u00fcz\u00fc (UI):<\/strong> Bir web aray\u00fcz\u00fc (\u00f6rn. Express.js, React\/Vue) ekleyerek ki\u015fi listesini ve mesaj \u015fablonlar\u0131n\u0131 daha kolay y\u00f6netebilirsiniz.<\/li>\n<li><strong>Zamanlama \u00d6zelli\u011fi:<\/strong> Mesajlar\u0131n belirli bir tarihte ve saatte otomatik olarak g\u00f6nderilmesini sa\u011flayan bir zamanlama mekanizmas\u0131 (\u00f6rn. Node-cron) ekleyebilirsiniz.<\/li>\n<li><strong>Medya Deste\u011fi:<\/strong> Mesajlara resim veya video ekleme \u00f6zelli\u011fi (<code>client.sendMedia()<\/code>) entegre edebilirsiniz.<\/li>\n<li><strong>Grup Mesajlar\u0131:<\/strong> Ki\u015filere tek tek g\u00f6ndermek yerine belirli gruplara mesaj g\u00f6nderme yetene\u011fi ekleyebilirsiniz.<\/li>\n<li><strong>Daha Geli\u015fmi\u015f Ki\u015fiselle\u015ftirme:<\/strong> Ki\u015filerin ilgi alanlar\u0131na g\u00f6re farkl\u0131 mesajlar g\u00f6nderme veya mesajlara emojiler ekleme gibi \u00f6zellikler geli\u015ftirebilirsiniz.<\/li>\n<\/ul>\n<h4>Yasal ve Etik Sorumluluklar<\/h4>\n<p>Unutmay\u0131n ki bu t\u00fcr otomasyon ara\u00e7lar\u0131, WhatsApp'\u0131n hizmet ko\u015fullar\u0131na ayk\u0131r\u0131 olabilir ve hesab\u0131n\u0131z\u0131n ask\u0131ya al\u0131nmas\u0131na yol a\u00e7abilir. Bu nedenle, bu arac\u0131 dikkatli, sorumlu ve sadece ki\u015fisel, d\u00fc\u015f\u00fck hacimli kullan\u0131mlar i\u00e7in kullanman\u0131z \u00f6nerilir. \u00d6zellikle ticari ama\u00e7larla kullanmadan \u00f6nce WhatsApp Business API'nin resmi \u00e7\u00f6z\u00fcmlerini ara\u015ft\u0131rman\u0131z ve yerel yasal d\u00fczenlemelere (KVKK, GDPR vb.) uyman\u0131z b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<dl>\n<dt>Bu otomasyon yasal m\u0131?<\/dt>\n<dd>WhatsApp'\u0131n hizmet ko\u015fullar\u0131, otomatik veya programl\u0131 y\u00f6ntemlerle mesaj g\u00f6ndermeyi yasaklar. Bu nedenle, bu t\u00fcr otomasyonlar WhatsApp'\u0131n politikalar\u0131na ayk\u0131r\u0131d\u0131r. Bu rehber sadece e\u011fitim ve ki\u015fisel kullan\u0131m ama\u00e7l\u0131d\u0131r. Ticari ama\u00e7larla kullanmadan \u00f6nce resmi WhatsApp Business API'sini ara\u015ft\u0131rmal\u0131s\u0131n\u0131z.<\/dd>\n<dt>WhatsApp hesab\u0131m yasaklanabilir mi?<\/dt>\n<dd>Evet, otomasyon ara\u00e7lar\u0131n\u0131n kullan\u0131m\u0131, \u00f6zellikle y\u00fcksek hacimli veya spam benzeri mesajla\u015fma durumlar\u0131nda hesab\u0131n\u0131z\u0131n ge\u00e7ici veya kal\u0131c\u0131 olarak yasaklanmas\u0131na neden olabilir. Riski azaltmak i\u00e7in mesajlar aras\u0131nda gecikmeler kullan\u0131n ve sadece tan\u0131d<\/p>\n","protected":false},"excerpt":{"rendered":"Modern ileti\u015fim \u00e7a\u011f\u0131nda, anl\u0131k mesajla\u015fma platformlar\u0131 hayat\u0131m\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 haline geldi. WhatsApp, d\u00fcnya genelinde milyarlarca kul&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[136],"tags":[],"class_list":{"0":"post-37214","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-node-js","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi\" \/>\n<meta property=\"og:description\" content=\"Modern ileti\u015fim \u00e7a\u011f\u0131nda, anl\u0131k mesajla\u015fma platformlar\u0131 hayat\u0131m\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 haline geldi. WhatsApp, d\u00fcnya genelinde milyarlarca kul...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-28T21:00:46+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi\",\"datePublished\":\"2025-12-28T21:00:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\"},\"wordCount\":2685,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Node.js\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\",\"name\":\"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-28T21:00:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi","og_description":"Modern ileti\u015fim \u00e7a\u011f\u0131nda, anl\u0131k mesajla\u015fma platformlar\u0131 hayat\u0131m\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 haline geldi. WhatsApp, d\u00fcnya genelinde milyarlarca kul...","og_url":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-28T21:00:46+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi","datePublished":"2025-12-28T21:00:46+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/"},"wordCount":2685,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Node.js"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/","name":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-28T21:00:46+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-yilbasi-tebriklerini-otomatiklestirme-whatsapp-mesaj-otomasyonu-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Node.js ile Y\u0131lba\u015f\u0131 Tebriklerini Otomatikle\u015ftirme: WhatsApp Mesaj Otomasyonu Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37214"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37214\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}