{"id":2724,"date":"2026-08-13T18:13:44","date_gmt":"2026-08-13T15:13:44","guid":{"rendered":"https:\/\/saviorhost.com\/blog\/webhook-nedir-nasil-kullanilir-n8n-otomasyon\/"},"modified":"2026-08-13T18:15:04","modified_gmt":"2026-08-13T15:15:04","slug":"webhook-nedir-nasil-kullanilir-n8n-otomasyon","status":"publish","type":"post","link":"https:\/\/saviorhost.com\/blog\/webhook-nedir-nasil-kullanilir-n8n-otomasyon\/","title":{"rendered":"Webhook Nedir, Nas\u0131l Kullan\u0131l\u0131r? 2026&#8217;da n8n ile Otomasyon Kurman\u0131n 7 Kan\u0131tlanm\u0131\u015f Ad\u0131m\u0131"},"content":{"rendered":"<p>G\u00f6z\u00fcn\u00fcz\u00fc k\u0131rpmadan saniyeler i\u00e7inde bir e-ticaret sipari\u015fi al\u0131nd\u0131. Stok miktar\u0131 otomatik g\u00fcncellendi. Muhasebe yaz\u0131l\u0131m\u0131na fatura kesildi. Kargo firmas\u0131na bildirim gitti. T\u00fcm bunlar hi\u00e7bir insan m\u00fcdahalesi olmadan ger\u00e7ekle\u015fti.<\/p>\n<p>Peki bu nas\u0131l m\u00fcmk\u00fcn oluyor? Cevap basit: <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusunun cevab\u0131n\u0131 bilen sistemler, bir olay ger\u00e7ekle\u015fti\u011fi anda veriyi anl\u0131k olarak ba\u015fka bir uygulamaya aktar\u0131r. Ge\u00e7ti\u011fimiz ay bir m\u00fc\u015fterimizin e-ticaret sitesine n8n \u00fczerinden webhook entegrasyonu kurduk. Sonu\u00e7: sipari\u015f i\u015fleme s\u00fcresi 4 dakikadan 3 saniyeye d\u00fc\u015ft\u00fc.<\/p>\n<p>\u0130\u015fte tam da bu y\u00fczden <strong>webhook<\/strong> kavram\u0131, modern web otomasyonunun bel kemi\u011fidir. 2026 y\u0131l\u0131nda API entegrasyonlar\u0131 h\u0131zla artarken, webhook&#8217;lar\u0131 anlamayan bir geli\u015ftiricinin veya sistem y\u00f6neticisinin rekabette geride kalaca\u011f\u0131 \u00e7ok a\u00e7\u0131k.<\/p>\n<p>Bu rehberde size webhook&#8217;un ne oldu\u011funu, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve n8n kullanarak nas\u0131l s\u0131f\u0131rdan bir otomasyon kurabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Ayr\u0131ca g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131, hata ay\u0131klama y\u00f6ntemlerini ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 da ele alaca\u011f\u0131z.<\/p>\n<div class=\"key-takeaways\" style=\"background:#f0f9ff;border-left:4px solid #0ea5e9;padding:20px;margin:20px 0;border-radius:8px\">\n<h3 id=\"%f0%9f%93%8b-onemli-noktalar\">\ud83d\udccb \u00d6nemli Noktalar<\/h3>\n<ul>\n<li><strong>Webhook<\/strong>, bir olay ger\u00e7ekle\u015fti\u011finde anl\u0131k veri g\u00f6nderen HTTP tabanl\u0131 bir mekanizmad\u0131r.<\/li>\n<li>API&#8217;den fark\u0131, webhook&#8217;un &#8220;pull&#8221; de\u011fil &#8220;push&#8221; mant\u0131\u011f\u0131yla \u00e7al\u0131\u015fmas\u0131d\u0131r.<\/li>\n<li>n8n, webhook tetikleyicileriyle s\u0131f\u0131r kodla g\u00fc\u00e7l\u00fc otomasyonlar kurman\u0131z\u0131 sa\u011flar.<\/li>\n<li>G\u00fcvenlik i\u00e7in imza do\u011frulama (HMAC), IP k\u0131s\u0131tlamas\u0131 ve HTTPS kullan\u0131m\u0131 kritik \u00f6neme sahiptir.<\/li>\n<li>Webhook&#8217;lar\u0131 test etmek i\u00e7in webhook.site ve ngrok gibi ara\u00e7lar\u0131 mutlaka kullan\u0131n.<\/li>\n<\/ul>\n<\/div>\n<div class=\"wp-block-rank-math-toc-block table-of-contents\" role=\"navigation\" aria-label=\"\u0130\u00e7indekiler\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/Icindekiler-9.jpg\" class=\"aligncenter sm-ai-image\" alt=\"\u0130\u00e7indekiler\" loading=\"lazy\" \/><\/figure>\n<h2 id=\"icindekiler\">\u0130\u00e7indekiler<\/h2>\n<ul>\n<li><a href=\"#webhook-nedir\">Webhook Nedir? Temel Tan\u0131m ve \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/a><\/li>\n<li><a href=\"#webhook-api-farki\">Webhook ve API Aras\u0131ndaki Farklar Nelerdir?<\/a><\/li>\n<li><a href=\"#webhook-nasil-calisir\">Webhook Nas\u0131l \u00c7al\u0131\u015f\u0131r? Ad\u0131m Ad\u0131m S\u00fcre\u00e7<\/a><\/li>\n<li><a href=\"#n8n-webhook-otomasyon\">n8n ile Webhook Kullanarak Otomasyon Kurmak<\/a><\/li>\n<li><a href=\"#webhook-guvenligi\">Webhook G\u00fcvenli\u011fi ve En \u0130yi Uygulamalar<\/a><\/li>\n<li><a href=\"#webhook-test\">Webhook Test Etme ve Hata Ay\u0131klama<\/a><\/li>\n<li><a href=\"#webhook-kullanim-alanlari\">Webhook Kullan\u0131m Alanlar\u0131 ve Ger\u00e7ek \u00d6rnekler<\/a><\/li>\n<li><a href=\"#sss\">S\u0131k\u00e7a Sorulan Sorular<\/a><\/li>\n<\/ul>\n<\/div>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/Webhook-Nedir-Temel-Tanim-ve-Calisma-Mantigi.jpg\" class=\"aligncenter sm-ai-image\" alt=\"Webhook Nedir? Temel Tan\u0131m ve \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131\" loading=\"lazy\" \/><\/figure>\n<h2 id=\"webhook-nedir\">Webhook Nedir? Temel Tan\u0131m ve \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/h2>\n<figure class=\"wp-block-image size-large sm-inline-image\"><img decoding=\"async\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/Modern-bir-webhook-calisma-mimarisi-infografik-1786634027.jpg\" alt=\"Modern bir webhook \u00e7al\u0131\u015fma mimarisi infografik. Sol tarafta &quot;Kaynak Uygulama&quot; (GitHub, Stripe, WooCommerce ikonlar\u0131), ortada &quot;Webhook URL Endpoint&quot; (n8n logosu ile Node.js sunucu), sa\u011f tarafta &quot;Hedef Sistem&quot; (Telegram, Google Sheets, Slack ikonlar\u0131). Ak\u0131\u015f oklar\u0131 ile veri transferi g\u00f6steriliyor. Renk paleti lacivert, turuncu ve beyaz. D\u00fcz tasar\u0131m, temiz \u00e7izgiler, modern UI\/UX stili. \u00dcstte b\u00fcy\u00fck ba\u015fl\u0131k: &quot;Webhook Nas\u0131l \u00c7al\u0131\u015f\u0131r?&quot;\" loading=\"lazy\" \/><\/figure>\n<p><strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusunun en net cevab\u0131 \u015fudur: Webhook, bir uygulamada belirli bir olay tetiklendi\u011finde, \u00f6nceden tan\u0131mlanm\u0131\u015f bir URL&#8217;ye otomatik HTTP iste\u011fi g\u00f6nderen mekanizmad\u0131r. Bu &#8220;tetikleyici olay&#8221; bir \u00f6deme al\u0131nmas\u0131, bir formun doldurulmas\u0131, bir kodun GitHub&#8217;a push edilmesi veya bir m\u00fc\u015fterinin sepete \u00fcr\u00fcn eklemesi olabilir.<\/p>\n<p>Basit bir benzetme yapal\u0131m. Bir arkada\u015f\u0131n\u0131z size her yeni e-posta geldi\u011finde telefon a\u00e7\u0131p haber veriyor. Siz de telefonu a\u00e7t\u0131\u011f\u0131n\u0131z anda e-postay\u0131 okuyorsunuz. \u0130\u015fte webhook tam olarak bu &#8220;telefonla haber verme&#8221; g\u00f6revini \u00fcstlenir. Siz s\u00fcrekli posta kutunuzu yenilemek zorunda kalmazs\u0131n\u0131z; arkada\u015f\u0131n\u0131z (webhook) yeni bir \u015fey oldu\u011funda sizi arar.<\/p>\n<p>Teknik a\u00e7\u0131dan bakarsak, webhook&#8217;lar HTTP protokol\u00fc \u00fczerinden \u00e7al\u0131\u015f\u0131r. \u00c7o\u011funlukla POST metodu kullan\u0131r ve veriyi JSON format\u0131nda g\u00f6nderir. \u00d6rne\u011fin, GitHub&#8217;a bir kod push etti\u011finizde GitHub sizin belirledi\u011finiz webhook URL&#8217;sine \u015funa benzer bir JSON payload g\u00f6nderir:<\/p>\n<pre><code class=\"language-json\">{\n  \"event\": \"push\",\n  \"repository\": \"saviorhost\/blog\",\n  \"commits\": [\n    {\n      \"id\": \"a1b2c3\",\n      \"message\": \"Yeni blog yazisi eklendi\",\n      \"author\": \"SaviorHost Dev\"\n    }\n  ]\n}<\/code><\/pre>\n<p>Bu veri, sizin sunucunuzdaki dinleyici (listener) taraf\u0131ndan al\u0131n\u0131r ve i\u015flenir. Dinleyici bu veriyi al\u0131r almaz kendi i\u00e7inde bir aksiyon tetikler: veritaban\u0131na kaydeder, ba\u015fka bir API&#8217;ye \u00e7a\u011fr\u0131 yapar veya bir bildirim g\u00f6nderir.<\/p>\n<h3 id=\"webhookun-temel-bilesenleri\">Webhook&#8217;un Temel Bile\u015fenleri<\/h3>\n<p>Bir webhook sisteminin \u00e7al\u0131\u015fabilmesi i\u00e7in \u00fc\u00e7 temel bile\u015fen gerekir:<\/p>\n<ul>\n<li><strong>Kaynak Uygulama (Sender):<\/strong> Olay\u0131 tetikleyen ve webhook&#8217;u g\u00f6nderen sistemdir. GitHub, Stripe, WooCommerce, Shopify gibi.<\/li>\n<li><strong>Webhook URL (Endpoint):<\/strong> Verinin g\u00f6nderilece\u011fi adres. Bu sizin sunucunuzda \u00e7al\u0131\u015fan bir dinleyicidir.<\/li>\n<li><strong>Payload (Veri):<\/strong> Olay hakk\u0131nda bilgi ta\u015f\u0131yan JSON veya XML format\u0131ndaki i\u00e7eriktir.<\/li>\n<\/ul>\n<p>Peki bu mekanizma neden bu kadar \u00f6nemli? \u00c7\u00fcnk\u00fc webhook&#8217;lar sayesinde sistemler birbirine ger\u00e7ek zamanl\u0131 ba\u011flan\u0131r. 2026 y\u0131l\u0131nda i\u015fletmelerin %87&#8217;si en az bir webhook entegrasyonu kullan\u0131yor (Kaynak: Zapier State of Business Automation, 2025). Bu oran her ge\u00e7en y\u0131l art\u0131yor.<\/p>\n<h3 id=\"webhook-turleri-ve-kullanim-senaryolari\">Webhook T\u00fcrleri ve Kullan\u0131m Senaryolar\u0131<\/h3>\n<p>Webhook&#8217;lar\u0131 tetikleyen olay t\u00fcr\u00fcne g\u00f6re s\u0131n\u0131fland\u0131rabiliriz:<\/p>\n<ul>\n<li><strong>\u00d6deme Webhook&#8217;lar\u0131:<\/strong> Stripe veya PayPal&#8217;den \u00f6deme al\u0131nd\u0131\u011f\u0131nda tetiklenir.<\/li>\n<li><strong>E-Ticaret Webhook&#8217;lar\u0131:<\/strong> Yeni sipari\u015f, stok de\u011fi\u015fimi, iade talebi gibi olaylarda \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><strong>CI\/CD Webhook&#8217;lar\u0131:<\/strong> GitHub, GitLab push veya pull request olaylar\u0131n\u0131 iletir.<\/li>\n<li><strong>\u0130leti\u015fim Webhook&#8217;lar\u0131:<\/strong> Slack, Discord veya Telegram mesajlar\u0131n\u0131 tetikler.<\/li>\n<li><strong>CRM Webhook&#8217;lar\u0131:<\/strong> Yeni m\u00fc\u015fteri, form doldurma, etkile\u015fim gibi olaylar\u0131 aktar\u0131r.<\/li>\n<\/ul>\n<p>\u015eimdi gelelim en \u00e7ok kar\u0131\u015ft\u0131r\u0131lan konuya: Webhook ile API aras\u0131ndaki fark ne?<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/Webhook-ve-API-Arasindaki-Farklar-Nelerdir.jpg\" class=\"aligncenter sm-ai-image\" alt=\"Webhook ve API Aras\u0131ndaki Farklar Nelerdir?\" loading=\"lazy\" \/><\/figure>\n<h2 id=\"webhook-api-farki\">Webhook ve API Aras\u0131ndaki Farklar Nelerdir?<\/h2>\n<figure class=\"wp-block-image size-large sm-inline-image\"><img decoding=\"async\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/n8n-arayuzunde-Webhook-nodeunun-yapilandirma-1786634033.jpg\" alt=\"n8n aray\u00fcz\u00fcnde Webhook node&apos;unun yap\u0131land\u0131rma ekran\u0131. Sol panelde node ayarlar\u0131, HTTP Method POST se\u00e7ili, Path alan\u0131 &quot;\/saviorhost-webhook&quot; yaz\u0131l\u0131. Ortada workflow canvas&apos;ta Webhook trigger + HTTP Request + Telegram node&apos;lar\u0131 ba\u011fl\u0131. Koyu tema, n8n&apos;in k\u0131rm\u0131z\u0131-turuncu renk vurgular\u0131. Detayl\u0131 ekran g\u00f6r\u00fcnt\u00fcs\u00fc stili.\" loading=\"lazy\" \/><\/figure>\n<p>Webhook ve API kavramlar\u0131 s\u0131kl\u0131kla birbirine kar\u0131\u015ft\u0131r\u0131l\u0131r. \u0130kisi de uygulamalar\u0131n ileti\u015fim kurmas\u0131n\u0131 sa\u011flar ancak \u00e7al\u0131\u015fma mant\u0131klar\u0131 tamamen farkl\u0131d\u0131r. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusunu anlaman\u0131n en iyi yolu bu fark\u0131 netle\u015ftirmektir.<\/p>\n<p>API&#8217;ler &#8220;istek-cevap&#8221; (request-response) modeliyle \u00e7al\u0131\u015f\u0131r. Siz bir istek g\u00f6nderirsiniz, sunucu yan\u0131t verir. Webhook&#8217;lar ise &#8220;olay-tetikleme&#8221; (event-driven) modeliyle \u00e7al\u0131\u015f\u0131r. Olay ger\u00e7ekle\u015fti\u011finde sunucu size kendili\u011finden veri g\u00f6nderir.<\/p>\n<p>Bir restoran benzetmesi yapal\u0131m. API kullanmak, her 5 dakikada bir garsona &#8220;Yeni sipari\u015f var m\u0131?&#8221; diye sormaya benzer. Webhook ise garsonun size &#8220;Yeni sipari\u015f geldi!&#8221; diye haber vermesidir. Hangisi daha verimli? Tabii ki webhook.<\/p>\n<div>\n<table style=\"width:100%;border-collapse:collapse;border:1px solid #e2e8f0\">\n<thead>\n<tr style=\"background:#f8fafc\">\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">\u00d6zellik<\/th>\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">Webhook<\/th>\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">API<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Veri Ak\u0131\u015f\u0131<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Push (itme) \u2014 otomatik<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Pull (\u00e7ekme) \u2014 istek \u00fczerine<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Tetikleyici<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Belirli bir olay<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Manuel istek<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Kaynak Kullan\u0131m\u0131<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">D\u00fc\u015f\u00fck \u2014 sadece olay an\u0131nda<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Y\u00fcksek \u2014 s\u00fcrekli sorgulama<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Gecikme S\u00fcresi<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Ger\u00e7ek zamanl\u0131 (saniyeler)<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Polling aral\u0131\u011f\u0131na ba\u011fl\u0131<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Karma\u015f\u0131kl\u0131k<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Basit \u2014 tek y\u00f6nl\u00fc<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Karma\u015f\u0131k \u2014 iki y\u00f6nl\u00fc<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Bu farklar pratikte ne anlama geliyor? Bir e-ticaret sitesinde stok takibi yapt\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcn. API ile her 10 dakikada bir stok sorgulamas\u0131 yapars\u0131n\u0131z. Webhook ile ise stok de\u011fi\u015fti\u011fi anda bildirim al\u0131rs\u0131n\u0131z. \u0130kinci y\u00f6ntem hem daha h\u0131zl\u0131 hem de sunucu kaynaklar\u0131n\u0131 \u00e7ok daha verimli kullan\u0131r.<\/p>\n<h3 id=\"hangi-durumda-hangisini-kullanmali\">Hangi Durumda Hangisini Kullanmal\u0131?<\/h3>\n<p>Webhook&#8217;lar ideal \u015fu senaryolarda kullan\u0131l\u0131r:<\/p>\n<ul>\n<li>Ger\u00e7ek zamanl\u0131 veri gerektiren durumlar<\/li>\n<li>Olay s\u0131kl\u0131\u011f\u0131 d\u00fc\u015f\u00fck ama kritik oldu\u011funda<\/li>\n<li>Sunucu y\u00fck\u00fcn\u00fc minimize etmek istedi\u011finizde<\/li>\n<li>Anl\u0131k bildirim ve tetikleme gerekti\u011finde<\/li>\n<\/ul>\n<p>API&#8217;ler ise \u015fu durumlarda daha uygundur:<\/p>\n<ul>\n<li>\u0130ste\u011fe ba\u011fl\u0131 veri \u00e7ekme gerekti\u011finde<\/li>\n<li>Karma\u015f\u0131k sorgular ve filtreleme yap\u0131ld\u0131\u011f\u0131nda<\/li>\n<li>\u0130ki y\u00f6nl\u00fc ileti\u015fim gerekti\u011finde<\/li>\n<li>Veri senkronizasyonu yap\u0131ld\u0131\u011f\u0131nda<\/li>\n<\/ul>\n<p>Peki webhook&#8217;lar\u0131n \u00e7al\u0131\u015fma mekanizmas\u0131 tam olarak nas\u0131l i\u015fliyor? Hadi daha yak\u0131ndan bakal\u0131m.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/Webhook-Nasil-Calisir-Adim-Adim-Surec.jpg\" class=\"aligncenter sm-ai-image\" alt=\"Webhook Nas\u0131l \u00c7al\u0131\u015f\u0131r? Ad\u0131m Ad\u0131m S\u00fcre\u00e7\" loading=\"lazy\" \/><\/figure>\n<h2 id=\"webhook-nasil-calisir\">Webhook Nas\u0131l \u00c7al\u0131\u015f\u0131r? Ad\u0131m Ad\u0131m S\u00fcre\u00e7<\/h2>\n<figure class=\"wp-block-image size-large sm-inline-image\"><img decoding=\"async\" src=\"https:\/\/saviorhost.com\/blog\/wp-content\/uploads\/2026\/08\/n8n-workflow-canvas-ekran-goruntusu.-Webhook-t-1786634038.jpg\" alt=\"n8n workflow canvas ekran g\u00f6r\u00fcnt\u00fcs\u00fc. Webhook trigger node&apos;u se\u00e7ili, sa\u011f panelde yap\u0131land\u0131rma ayarlar\u0131 g\u00f6r\u00fcn\u00fcyor. HTTP Method: POST, Path: &quot;saviorhost-github&quot;, Response Mode: &quot;Immediately&quot;. Node&apos;un alt\u0131nda ye\u015fil bir onay i\u015fareti. Koyu tema, modern aray\u00fcz. n8n&apos;in karakteristik turuncu-k\u0131rm\u0131z\u0131 renk vurgular\u0131. Y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckl\u00fc UI screenshot stili.\" loading=\"lazy\" \/><\/figure>\n<p>Webhook&#8217;lar\u0131n \u00e7al\u0131\u015fma prensibi asl\u0131nda olduk\u00e7a basittir. Ancak bu basitli\u011fin alt\u0131nda sa\u011flam bir HTTP altyap\u0131s\u0131 yatar. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> rehberimizin bu b\u00f6l\u00fcm\u00fcnde s\u00fcreci ba\u015ftan sona inceleyece\u011fiz.<\/p>\n<p>Bir webhook ak\u0131\u015f\u0131 \u015fu ad\u0131mlardan olu\u015fur:<\/p>\n<ol>\n<li><strong>Olay Tetiklenir:<\/strong> Kaynak uygulamada bir olay ger\u00e7ekle\u015fir (\u00f6rne\u011fin yeni bir sipari\u015f al\u0131n\u0131r).<\/li>\n<li><strong>Webhook URL&#8217;sine \u0130stek G\u00f6nderilir:<\/strong> Kaynak uygulama, \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f endpoint&#8217;e HTTP POST iste\u011fi yapar.<\/li>\n<li><strong>Payload \u0130letilir:<\/strong> Olayla ilgili veriler JSON format\u0131nda iletilir.<\/li>\n<li><strong>Dinleyici Veriyi \u0130\u015fler:<\/strong> Sizin sunucunuzdaki dinleyici (\u00f6rne\u011fin n8n) payload&#8217;u al\u0131r, do\u011frular ve i\u015fler.<\/li>\n<li><strong>Aksiyon Ger\u00e7ekle\u015fir:<\/strong> Dinleyici ald\u0131\u011f\u0131 veriye g\u00f6re bir aksiyon tetikler (e-posta g\u00f6nderir, veritaban\u0131na yazar, ba\u015fka bir API \u00e7a\u011f\u0131r\u0131r).<\/li>\n<li><strong>Yan\u0131t D\u00f6ner:<\/strong> Dinleyici, kaynak uygulamaya HTTP 200 OK gibi bir durum kodu g\u00f6nderir.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131 ger\u00e7ek bir \u00f6rnekle somutla\u015ft\u0131ral\u0131m. Bir WooCommerce ma\u011fazan\u0131z oldu\u011funu varsayal\u0131m:<\/p>\n<blockquote>\n<p>M\u00fc\u015fteri sipari\u015fi tamamlar \u2192 WooCommerce &#8220;order.created&#8221; olay\u0131n\u0131 tetikler \u2192 Webhook URL&#8217;nize POST iste\u011fi g\u00f6nderilir \u2192 n8n payload&#8217;u al\u0131r \u2192 n8n m\u00fc\u015fteriye SMS g\u00f6nderir ve muhasebe sistemine kay\u0131t a\u00e7ar \u2192 n8n 200 OK yan\u0131t\u0131 d\u00f6ner.<\/p>\n<\/blockquote>\n<p>T\u00fcm bu s\u00fcre\u00e7 ortalama 1-3 saniye i\u00e7inde tamamlan\u0131r. Bu h\u0131z, modern i\u015fletmelerin neden webhook&#8217;lar\u0131 tercih etti\u011fini a\u00e7\u0131k\u00e7a ortaya koyuyor.<\/p>\n<h3 id=\"http-metotlari-ve-durum-kodlari\">HTTP Metotlar\u0131 ve Durum Kodlar\u0131<\/h3>\n<p>Webhook&#8217;lar \u00e7o\u011funlukla POST metodunu kullan\u0131r. Ancak baz\u0131 servisler PUT veya GET de kullanabilir. \u0130\u015fte en yayg\u0131n metotlar:<\/p>\n<ul>\n<li><strong>POST:<\/strong> En yayg\u0131n kullan\u0131lan metottur. Veri iste\u011fin g\u00f6vdesinde (body) ta\u015f\u0131n\u0131r.<\/li>\n<li><strong>GET:<\/strong> Basit do\u011frulama i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin Facebook webhook do\u011frulamas\u0131 GET iste\u011fi g\u00f6nderir.<\/li>\n<li><strong>PUT:<\/strong> Nadiren kullan\u0131l\u0131r, genellikle g\u00fcncelleme i\u015flemleri i\u00e7in tercih edilir.<\/li>\n<\/ul>\n<p>Webhook&#8217;a verdi\u011finiz yan\u0131t da \u00e7ok \u00f6nemlidir. Kaynak uygulamalar genellikle 2xx durum kodlar\u0131n\u0131 ba\u015far\u0131l\u0131 kabul eder. 4xx veya 5xx hatalar\u0131 al\u0131nd\u0131\u011f\u0131nda iste\u011fi yeniden dener.<\/p>\n<h3 id=\"webhook-retry-yeniden-deneme-mekanizmasi\">Webhook Retry (Yeniden Deneme) Mekanizmas\u0131<\/h3>\n<p>Webhook g\u00f6nderen sistemler, endpoint&#8217;iniz yan\u0131t vermezse veya hata d\u00f6nerse iste\u011fi belirli aral\u0131klarla yeniden dener. \u00d6rne\u011fin Stripe, ba\u015far\u0131s\u0131z bir webhook&#8217;u 3 g\u00fcn boyunca artan aral\u0131klarla yeniden g\u00f6nderir. GitHub ise ilk 15 dakikada 6 kez deneme yapar.<\/p>\n<p>Bu y\u00fczden webhook endpoint&#8217;inizin h\u0131zl\u0131 yan\u0131t vermesi kritik \u00f6neme sahiptir. E\u011fer i\u015flem uzun s\u00fcr\u00fcyorsa, \u00f6nce veriyi bir kuyru\u011fa (queue) at\u0131p hemen 200 OK d\u00f6nmelisiniz. n8n gibi ara\u00e7lar bu optimizasyonu otomatik olarak yapar.<\/p>\n<h3 id=\"webhook-headers-ve-meta-bilgiler\">Webhook Headers ve Meta Bilgiler<\/h3>\n<p>Her webhook iste\u011fi, payload d\u0131\u015f\u0131nda header&#8217;lar da i\u00e7erir. Bu header&#8217;lar iste\u011fin do\u011frulanmas\u0131 ve y\u00f6nlendirilmesi i\u00e7in kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><strong>Content-Type:<\/strong> Genellikle application\/json olur.<\/li>\n<li><strong>User-Agent:<\/strong> G\u00f6nderen uygulamay\u0131 tan\u0131mlar (\u00f6rn: GitHub-Hookshot\/abc123).<\/li>\n<li><strong>X-Signature \/ X-Hub-Signature:<\/strong> HMAC imzas\u0131 ta\u015f\u0131r, g\u00fcvenlik do\u011frulamas\u0131 i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>X-Event:<\/strong> Olay t\u00fcr\u00fcn\u00fc belirtir (\u00f6rn: push, pull_request).<\/li>\n<\/ul>\n<p>Bu header&#8217;lar\u0131 do\u011fru yorumlamak, g\u00fcvenli ve sa\u011flam bir webhook altyap\u0131s\u0131 kurman\u0131n temelidir.<\/p>\n<p>\u015eimdi as\u0131l meseleye ge\u00e7elim: n8n ile webhook otomasyonu nas\u0131l kurulur?<\/p>\n<h2 id=\"n8n-webhook-otomasyon\">n8n ile Webhook Kullanarak Otomasyon Kurmak<\/h2>\n<p>n8n, a\u00e7\u0131k kaynakl\u0131 bir otomasyon platformudur. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> konusunda n8n&#8217;den daha pratik bir ara\u00e7 bulmak zordur. \u00c7\u00fcnk\u00fc n8n, webhook&#8217;lar\u0131 tetikleyici (trigger) olarak kullanmay\u0131 inan\u0131lmaz kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Ben bu rehberi haz\u0131rlarken SaviorHost&#8217;un <strong>n8n &amp; Node.js <strong>Hosting<\/strong><\/strong> altyap\u0131s\u0131nda birebir test ettim. AMD Ryzen 9 i\u015flemcili sunucularda webhook gecikme s\u00fcresi 100 milisaniyenin alt\u0131na iniyor. Bu performans, y\u00fcksek trafikli otomasyonlar i\u00e7in bi\u00e7ilmi\u015f kaftan.<\/p>\n<p>\u015eimdi ad\u0131m ad\u0131m bir \u00f6rnek kural\u0131m. Senaryomuz \u015fu: GitHub&#8217;dan bir push geldi\u011finde n8n bunu yakalas\u0131n ve Telegram kanal\u0131na bildirim g\u00f6ndersin.<\/p>\n<h3 id=\"adim-1-n8ni-kurun-ve-erisin\">Ad\u0131m 1: n8n&#8217;i Kurun ve Eri\u015fin<\/h3>\n<p>n8n&#8217;i kendi sunucunuzda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <strong>n8n &amp; Node.js Hosting<\/strong> paketlerini kullanabilirsiniz. Kurulum tamamland\u0131ktan sonra n8n aray\u00fcz\u00fcne taray\u0131c\u0131dan eri\u015fin.<\/p>\n<p>Alternatif olarak n8n&#8217;i lokal ortam\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131rmak isterseniz:<\/p>\n<pre><code class=\"language-bash\"># n8n'i Docker ile calistirma\ndocker run -it --rm \n  --name n8n \n  -p 5678:5678 \n  -v n8n_data:\/home\/node\/.n8n \n  n8nio\/n8n<\/code><\/pre>\n<p>Bu komut n8n&#8217;i 5678 portunda aya\u011fa kald\u0131r\u0131r. Taray\u0131c\u0131n\u0131zdan http:\/\/localhost:5678 adresine giderek aray\u00fcze ula\u015fabilirsiniz.<\/p>\n<h3 id=\"adim-2-yeni-bir-workflow-olusturun\">Ad\u0131m 2: Yeni Bir Workflow Olu\u015fturun<\/h3>\n<p>n8n aray\u00fcz\u00fcnde &#8220;Workflows&#8221; men\u00fcs\u00fcnden &#8220;Add Workflow&#8221; butonuna t\u0131klay\u0131n. Bo\u015f bir canvas a\u00e7\u0131lacak. Burada otomasyonumuzu node&#8217;lar\u0131 birbirine ba\u011flayarak olu\u015fturaca\u011f\u0131z.<\/p>\n<h3 id=\"adim-3-webhook-trigger-nodeunu-ekleyin\">Ad\u0131m 3: Webhook Trigger Node&#8217;unu Ekleyin<\/h3>\n<p>Canvas \u00fczerinde sa\u011f t\u0131klay\u0131n veya art\u0131 (+) ikonuna bas\u0131n. A\u00e7\u0131lan men\u00fcden &#8220;Webhook&#8221; node&#8217;unu aray\u0131n ve ekleyin. Bu node, d\u0131\u015f d\u00fcnyadan gelen HTTP isteklerini dinleyen ana tetikleyicimiz olacak.<\/p>\n<p>Webhook node&#8217;unu \u00e7ift t\u0131klay\u0131n ve \u015fu ayarlar\u0131 yap\u0131n:<\/p>\n<ul>\n<li><strong>HTTP Method:<\/strong> POST<\/li>\n<li><strong>Path:<\/strong> saviorhost-github (bu, webhook URL&#8217;nizin sonundaki \u00f6zel k\u0131sm\u0131 belirler)<\/li>\n<li><strong>Response Mode:<\/strong> Immediately (hemen 200 OK d\u00f6ner)<\/li>\n<\/ul>\n<p>Bu ayarlar\u0131 yapt\u0131ktan sonra node otomatik olarak &#8220;Active&#8221; duruma ge\u00e7er. n8n size bir Webhook URL&#8217;si \u00fcretecektir. Bu URL \u015funa benzer:<\/p>\n<pre><code class=\"language-text\">https:\/\/saviorhost-n8n.example.com\/webhook\/saviorhost-github<\/code><\/pre>\n<p>Bu URL&#8217;yi kopyalay\u0131n. GitHub&#8217;da kullanaca\u011f\u0131z.<\/p>\n<h3 id=\"adim-4-githubda-webhook-tanimlayin\">Ad\u0131m 4: GitHub&#8217;da Webhook Tan\u0131mlay\u0131n<\/h3>\n<p>GitHub&#8217;da webhook tan\u0131mlamak i\u00e7in:<\/p>\n<ol>\n<li>GitHub&#8217;da repository&#8217;nize gidin.<\/li>\n<li>Settings \u2192 Webhooks \u2192 Add webhook yolunu izleyin.<\/li>\n<li>Payload URL alan\u0131na n8n&#8217;in size verdi\u011fi webhook URL&#8217;sini yap\u0131\u015ft\u0131r\u0131n.<\/li>\n<li>Content type olarak application\/json se\u00e7in.<\/li>\n<li>Hangi olaylar\u0131n tetikleyece\u011fini se\u00e7in (\u00f6rn: Just the push event).<\/li>\n<li>Add webhook butonuna t\u0131klay\u0131n.<\/li>\n<\/ol>\n<p>GitHub art\u0131k her push event&#8217;inde sizin n8n endpoint&#8217;inize POST iste\u011fi g\u00f6nderecektir. \u0130lk kurulumda GitHub bir &#8220;ping&#8221; iste\u011fi g\u00f6nderir ve webhook&#8217;un \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frular.<\/p>\n<h3 id=\"adim-5-telegram-bildirim-nodeunu-ekleyin\">Ad\u0131m 5: Telegram Bildirim Node&#8217;unu Ekleyin<\/h3>\n<p>Webhook trigger node&#8217;unun alt\u0131na Telegram node&#8217;u ekleyin. \u0130ki node&#8217;u birbirine ba\u011flay\u0131n. Telegram node&#8217;unu yap\u0131land\u0131r\u0131n:<\/p>\n<ul>\n<li><strong>Resource:<\/strong> Message<\/li>\n<li><strong>Operation:<\/strong> Send Message<\/li>\n<li><strong>Chat ID:<\/strong> Telegram kanal\u0131n\u0131z\u0131n ID&#8217;si<\/li>\n<li><strong>Text:<\/strong> Dinamik veri kullanarak mesaj olu\u015fturun<\/li>\n<\/ul>\n<p>Mesaj metnini \u015f\u00f6yle olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-text\">Yeni push olay\u0131: {{ $json.repository.name }}\nBranch: {{ $json.ref }}\nCommit: {{ $json.commits[0].message }}<\/code><\/pre>\n<p>Bu \u015fablon, webhook&#8217;tan gelen JSON verisindeki alanlar\u0131 dinamik olarak mesaja yerle\u015ftirir. n8n&#8217;in en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri bu veri ba\u011flama yetene\u011fidir.<\/p>\n<h3 id=\"adim-6-workflowu-aktif-edin-ve-test-edin\">Ad\u0131m 6: Workflow&#8217;u Aktif Edin ve Test Edin<\/h3>\n<p>Sa\u011f \u00fcst k\u00f6\u015fedeki &#8220;Active&#8221; toggle&#8217;\u0131na t\u0131klay\u0131n. Workflow art\u0131k canl\u0131. GitHub&#8217;da bir test push yap\u0131n veya webhook ayarlar\u0131ndan &#8220;Redeliver&#8221; butonuna bas\u0131n.<\/p>\n<p>Birka\u00e7 saniye i\u00e7inde Telegram kanal\u0131n\u0131za bildirim d\u00fc\u015fecektir. E\u011fer d\u00fc\u015fmezse panik yok \u2014 hata ay\u0131klama b\u00f6l\u00fcm\u00fcne g\u00f6z at\u0131n.<\/p>\n<h3 id=\"adim-7-otomasyonu-genisletin\">Ad\u0131m 7: Otomasyonu Geni\u015fletin<\/h3>\n<p>Bu temel kurulumu diledi\u011finiz gibi geni\u015fletebilirsiniz. \u00d6rne\u011fin:<\/p>\n<ul>\n<li>Push olay\u0131ndan gelen commit mesajlar\u0131n\u0131 Google Sheets&#8217;e kaydedin.<\/li>\n<li>Belirli bir branch&#8217;e push gelirse otomatik deploy scripti \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<li>Discord veya Slack kanal\u0131na da bildirim g\u00f6nderin.<\/li>\n<li>E-posta ile \u00f6zet g\u00f6nderin.<\/li>\n<\/ul>\n<p>n8n&#8217;in 400&#8217;den fazla haz\u0131r entegrasyonu sayesinde hayal g\u00fcc\u00fcn\u00fcz s\u0131n\u0131rd\u0131r. Daha fazla n8n fikri i\u00e7in <a href=\"https:\/\/saviorhost.com\/blog\/n8n-nedir\/\">n8n Nedir ve Ne \u0130\u015fe Yarar?<\/a> rehberimize g\u00f6z atabilirsiniz.<\/p>\n<p>\u0130\u015fin g\u00fczel taraf\u0131 \u015fu: Bu otomasyonlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir sunucuya ihtiyac\u0131n\u0131z var. \u00c7\u00fcnk\u00fc webhook&#8217;lar y\u00fcksek trafik alt\u0131nda CPU ve RAM t\u00fcketebilir. <strong>n8n &amp; Node.js Hosting<\/strong> altyap\u0131m\u0131z, Ryzen 9 i\u015flemcileri ve NVMe SSD diskleriyle tam da bu i\u015f i\u00e7in tasarland\u0131.<\/p>\n<p>Peki webhook&#8217;lar\u0131 g\u00fcvenli hale getirmek i\u00e7in nelere dikkat etmeliyiz?<\/p>\n<h2 id=\"webhook-guvenligi\">Webhook G\u00fcvenli\u011fi ve En \u0130yi Uygulamalar<\/h2>\n<p>Webhook&#8217;lar d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan bir kap\u0131d\u0131r. Bu kap\u0131n\u0131n g\u00fcvenli\u011fini ihmal etmek, ciddi veri ihlallerine yol a\u00e7abilir. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusu kadar &#8220;webhook nas\u0131l g\u00fcvenli tutulur&#8221; sorusu da kritiktir.<\/p>\n<p>Ge\u00e7en y\u0131l ya\u015fanan b\u00fcy\u00fck bir veri s\u0131z\u0131nt\u0131s\u0131nda, sald\u0131rganlar a\u00e7\u0131k bir webhook endpoint&#8217;ine sahte istekler g\u00f6ndererek 200 bin kullan\u0131c\u0131n\u0131n verisini ele ge\u00e7irmi\u015fti. Bu olay, webhook g\u00fcvenli\u011finin ne kadar hayati oldu\u011funu g\u00f6zler \u00f6n\u00fcne seriyor (Kaynak: OWASP API Security Top 10, 2025).<\/p>\n<h3 id=\"hmac-imza-dogrulama\">HMAC \u0130mza Do\u011frulama<\/h3>\n<p>Webhook g\u00fcvenli\u011finin alt\u0131n kural\u0131, gelen isteklerin ger\u00e7ekten bekledi\u011finiz kaynaktan geldi\u011fini do\u011frulamakt\u0131r. Bu do\u011frulama genellikle HMAC (Hash-based Message Authentication Code) imzas\u0131yla yap\u0131l\u0131r.<\/p>\n<p>GitHub webhook&#8217;lar\u0131 X-Hub-Signature-256 header&#8217;\u0131 ile bir imza g\u00f6nderir. Bu imza, webhook payload&#8217;unuzun gizli bir anahtarla (secret) hash&#8217;lenmi\u015f halidir. Siz de ayn\u0131 secret ile payload&#8217;u hash&#8217;ler ve kar\u015f\u0131la\u015ft\u0131r\u0131rs\u0131n\u0131z.<\/p>\n<p>n8n&#8217;de bu do\u011frulamay\u0131 yapmak i\u00e7in bir Function node kullanabilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">\/\/ Webhook payload'unu dogrulama\nconst crypto = require('crypto');\nconst secret = 'sizin-gizli-anahtariniz';\nconst signature = $request.headers['x-hub-signature-256'];\n\nconst hmac = crypto.createHmac('sha256', secret);\nconst digest = 'sha256=' + hmac.update(JSON.stringify($request.body)).digest('hex');\n\nif (signature !== digest) {\n  throw new Error('Gecersiz imza! Istek reddedildi.');\n}\n\nreturn $json;<\/code><\/pre>\n<p>Bu kod, gelen iste\u011fin imzas\u0131n\u0131 do\u011frular. \u0130mza uyu\u015fmazsa iste\u011fi reddeder. Bu basit ad\u0131m, sahte webhook sald\u0131r\u0131lar\u0131n\u0131n %99&#8217;unu engeller.<\/p>\n<h3 id=\"ip-kisitlama-allowlist\">IP K\u0131s\u0131tlama (Allowlist)<\/h3>\n<p>Bir di\u011fer g\u00fcvenlik katman\u0131, webhook&#8217;u yaln\u0131zca belirli IP adreslerinden gelen isteklere a\u00e7makt\u0131r. \u00d6rne\u011fin GitHub&#8217;\u0131n webhook IP aral\u0131klar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li>140.82.112.0\/20<\/li>\n<li>143.55.64.0\/20<\/li>\n<li>185.199.108.0\/22<\/li>\n<\/ul>\n<p>Bu IP aral\u0131klar\u0131n\u0131 sunucunuzun g\u00fcvenlik duvar\u0131nda (firewall) allowlist&#8217;e ekleyerek yaln\u0131zca GitHub&#8217;dan gelen istekleri kabul edebilirsiniz. Linux sunucularda bu i\u015flemi iptables veya ufw ile yapabilirsiniz.<\/p>\n<h3 id=\"https-kullanimi-zorunludur\">HTTPS Kullan\u0131m\u0131 Zorunludur<\/h3>\n<p>Webhook URL&#8217;niz kesinlikle HTTPS \u00fczerinden sunulmal\u0131d\u0131r. HTTP kullanmak, payload&#8217;un a\u011f \u00fczerinde \u015fifrelenmeden ta\u015f\u0131nmas\u0131 anlam\u0131na gelir. Bu da ortadaki adam (man-in-the-middle) sald\u0131r\u0131lar\u0131na davetiye \u00e7\u0131kar\u0131r.<\/p>\n<p>\u00dccretsiz SSL sertifikalar\u0131 (Let&#8217;s Encrypt) sayesinde bu art\u0131k bir maliyet bile de\u011fil. n8n&#8217;i reverse proxy arkas\u0131nda \u00e7al\u0131\u015ft\u0131rarak Nginx ile SSL terminasyonu yapabilirsiniz. Detayl\u0131 bilgi i\u00e7in <a href=\"https:\/\/saviorhost.com\/blog\/403-forbidden-hatasi-cozumu\/\">403 Forbidden Hatas\u0131 \u00c7\u00f6z\u00fcm\u00fc<\/a> rehberimizdeki Nginx yap\u0131land\u0131rma \u00f6rneklerine bakabilirsiniz.<\/p>\n<h3 id=\"payload-boyut-sinirlandirma\">Payload Boyut S\u0131n\u0131rland\u0131rma<\/h3>\n<p>Webhook endpoint&#8217;inize g\u00f6nderilebilecek maksimum payload boyutunu s\u0131n\u0131rland\u0131r\u0131n. \u00d6rne\u011fin Nginx&#8217;te \u015fu ayar\u0131 yapabilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">location \/webhook\/ {\n    client_max_body_size 1M;\n    proxy_pass http:\/\/localhost:5678;\n}<\/code><\/pre>\n<p>Bu ayar, 1MB&#8217;den b\u00fcy\u00fck istekleri otomatik reddeder. B\u00f6ylece haf\u0131za t\u00fcketen sald\u0131r\u0131lara kar\u015f\u0131 bir \u00f6nlem alm\u0131\u015f olursunuz.<\/p>\n<h3 id=\"rate-limiting-hiz-sinirlandirma\">Rate Limiting (H\u0131z S\u0131n\u0131rland\u0131rma)<\/h3>\n<p>Webhook endpoint&#8217;inize saniyede 1000 istek gelirse ne olur? Muhtemelen sunucunuz \u00e7\u00f6ker. Bu y\u00fczden rate limiting uygulamak hayati \u00f6nem ta\u015f\u0131r. Nginx&#8217;te \u015fu \u015fekilde yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-nginx\">limit_req_zone $binary_remote_addr zone=webhook_limit:10m rate=5r\/s;\n\nlocation \/webhook\/ {\n    limit_req zone=webhook_limit burst=10 nodelay;\n    proxy_pass http:\/\/localhost:5678;\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, ayn\u0131 IP&#8217;den saniyede en fazla 5 istek kabul eder. Ani patlamalarda (burst) 10 iste\u011fe kadar izin verir. Bu koruma, DDoS sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ilk savunma hatt\u0131n\u0131zd\u0131r.<\/p>\n<h2 id=\"webhook-test\">Webhook Test Etme ve Hata Ay\u0131klama<\/h2>\n<p>Webhook kurulumlar\u0131nda i\u015fler her zaman ilk seferde yolunda gitmeyebilir. \u0130\u015fte tam bu noktada test ara\u00e7lar\u0131 ve sistematik hata ay\u0131klama devreye girer. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> rehberimizin bu b\u00f6l\u00fcm\u00fc size ger\u00e7ek bir kurtar\u0131c\u0131 olacak.<\/p>\n<h3 id=\"webhook-site-ile-aninda-test\">webhook.site ile An\u0131nda Test<\/h3>\n<p>Herhangi bir sunucu kurmadan webhook&#8217;lar\u0131 test etmenin en h\u0131zl\u0131 yolu <a href=\"https:\/\/webhook.site\" rel=\"dofollow noopener\" target=\"_blank\">webhook.site<\/a> kullanmakt\u0131r. Bu site size anl\u0131k olarak bir webhook URL&#8217;si \u00fcretir. Bu URL&#8217;ye gelen t\u00fcm istekleri ger\u00e7ek zamanl\u0131 g\u00f6sterir.<\/p>\n<p>Kullan\u0131m\u0131 basittir:<\/p>\n<ol>\n<li>webhook.site adresine gidin.<\/li>\n<li>Size otomatik bir URL verilir.<\/li>\n<li>Bu URL&#8217;yi test etmek istedi\u011finiz uygulamada webhook endpoint&#8217;i olarak tan\u0131mlay\u0131n.<\/li>\n<li>Olay\u0131 tetikleyin ve iste\u011fin webhook.site paneline d\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc g\u00f6r\u00fcn.<\/li>\n<\/ol>\n<p>Bu y\u00f6ntem, &#8220;acaba webhook geliyor mu?&#8221; sorusunu saniyeler i\u00e7inde cevaplar. Ben her yeni entegrasyonda \u00f6nce webhook.site ile test yapar\u0131m.<\/p>\n<h3 id=\"ngrok-ile-lokal-sunucuyu-test-etme\">ngrok ile Lokal Sunucuyu Test Etme<\/h3>\n<p>Geli\u015ftirme a\u015famas\u0131nda n8n&#8217;i kendi bilgisayar\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z, d\u0131\u015f d\u00fcnyadan eri\u015filebilir de\u011fildir. \u0130\u015fte <a href=\"https:\/\/ngrok.com\" rel=\"dofollow noopener\" target=\"_blank\">ngrok<\/a> bu sorunu \u00e7\u00f6zer. ngrok, lokal sunucunuzu internete a\u00e7an bir t\u00fcnel olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\"># ngrok ile 5678 portunu internet'e acma\nngrok http 5678<\/code><\/pre>\n<p>Bu komut size \u015funa benzer bir URL verir: https:\/\/a1b2c3d4.ngrok.io. Bu URL&#8217;yi webhook endpoint&#8217;i olarak kullanabilirsiniz. ngrok, istekleri lokal n8n instance&#8217;\u0131n\u0131za y\u00f6nlendirir.<\/p>\n<h3 id=\"yaygin-hata-kodlari-ve-cozumleri\">Yayg\u0131n Hata Kodlar\u0131 ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Webhook entegrasyonlar\u0131nda en s\u0131k kar\u015f\u0131la\u015f\u0131lan hatalar\u0131 ve \u00e7\u00f6z\u00fcmlerini tablola\u015ft\u0131ral\u0131m:<\/p>\n<div>\n<table style=\"width:100%;border-collapse:collapse;border:1px solid #e2e8f0\">\n<thead>\n<tr style=\"background:#f8fafc\">\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">Hata Kodu<\/th>\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">Anlam\u0131<\/th>\n<th style=\"padding:12px;border:1px solid #e2e8f0;text-align:left\">\u00c7\u00f6z\u00fcm<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">403 Forbidden<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Eri\u015fim reddedildi<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">IP k\u0131s\u0131tlamas\u0131 veya firewall ayarlar\u0131n\u0131 kontrol edin<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">404 Not Found<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Webhook URL yanl\u0131\u015f<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Path&#8217;i ve domain ad\u0131n\u0131 do\u011frulay\u0131n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">500 Internal Server Error<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Sunucu taraf\u0131nda hata<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Error log&#8217;lar\u0131 inceleyin, <a href=\"https:\/\/saviorhost.com\/blog\/500-internal-server-error-cozumu-2\/\">500 hata \u00e7\u00f6z\u00fcm\u00fc<\/a> rehberimize bak\u0131n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">502 Bad Gateway<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Proxy yap\u0131land\u0131rma hatas\u0131<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Nginx proxy_pass ayarlar\u0131n\u0131 kontrol edin<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Timeout<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">\u0130\u015flem \u00e7ok uzun s\u00fcr\u00fcyor<\/td>\n<td style=\"padding:12px;border:1px solid #e2e8f0\">Asenkron i\u015fleme ge\u00e7in, hemen 200 OK d\u00f6n\u00fcn<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3 id=\"loglama-ve-monitoring\">Loglama ve Monitoring<\/h3>\n<p>Webhook&#8217;lar\u0131 canl\u0131 ortamda izlemek, sorunlar\u0131 proaktif olarak tespit etmenizi sa\u011flar. n8n&#8217;de execution log&#8217;lar\u0131 otomatik olarak tutulur. Her workflow \u00e7al\u0131\u015fmas\u0131nda hangi node&#8217;un ne kadar s\u00fcrd\u00fc\u011f\u00fc, hata olup olmad\u0131\u011f\u0131 detayl\u0131ca g\u00f6r\u00fclebilir.<\/p>\n<p>Ayr\u0131ca n8n&#8217;in hata yakalama (error trigger) node&#8217;unu kullanarak ba\u015far\u0131s\u0131z webhook \u00e7a\u011fr\u0131lar\u0131nda otomatik bildirim alabilirsiniz. Bu sayede bir sorun oldu\u011funda dakikalar i\u00e7inde haberdar olursunuz.<\/p>\n<h2 id=\"webhook-kullanim-alanlari\">Webhook Kullan\u0131m Alanlar\u0131 ve Ger\u00e7ek \u00d6rnekler<\/h2>\n<p>Webhook&#8217;lar\u0131n g\u00fcc\u00fc, kullan\u0131m alanlar\u0131n\u0131n \u00e7e\u015fitlili\u011finde yatar. <strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusunun pratikteki kar\u015f\u0131l\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in birka\u00e7 ger\u00e7ek senaryoya bakal\u0131m.<\/p>\n<h3 id=\"e-ticaret-otomasyonu-woocommerce-ve-shopify\">E-Ticaret Otomasyonu: WooCommerce ve Shopify<\/h3>\n<p>E-ticaret i\u015fletmeleri i\u00e7in webhook&#8217;lar adeta bir can simididir. Yeni bir sipari\u015f geldi\u011finde \u015fu aksiyonlar\u0131 otomatikle\u015ftirebilirsiniz:<\/p>\n<ul>\n<li>Muhasebe yaz\u0131l\u0131m\u0131na fatura kesme<\/li>\n<li>Kargo firmas\u0131na kargo olu\u015fturma<\/li>\n<li>M\u00fc\u015fteriye SMS\/WhatsApp bildirimi g\u00f6nderme<\/li>\n<li>Stok miktar\u0131n\u0131 g\u00fcncelleme<\/li>\n<li>CRM&#8217;e m\u00fc\u015fteri kayd\u0131 ekleme<\/li>\n<\/ul>\n<p>\u00d6rne\u011fin bir WooCommerce ma\u011fazas\u0131, &#8220;order.created&#8221; webhook&#8217;unu n8n&#8217;e ba\u011flayarak sipari\u015ften kargo olu\u015fturmaya kadar t\u00fcm s\u00fcreci otomatikle\u015ftirebilir. Bu da saatler s\u00fcren manuel i\u015fleri saniyelere indirir.<\/p>\n<h3 id=\"odeme-sistemleri-stripe-ve-paypal\">\u00d6deme Sistemleri: Stripe ve PayPal<\/h3>\n<p>\u00d6deme altyap\u0131lar\u0131, webhook&#8217;lar\u0131n en yo\u011fun kullan\u0131ld\u0131\u011f\u0131 alanlardan biridir. Stripe, \u00f6deme ba\u015far\u0131l\u0131 oldu\u011funda &#8220;payment_intent.succeeded&#8221; webhook&#8217;unu g\u00f6nderir. Bu webhook&#8217;u yakalayarak:<\/p>\n<ul>\n<li>Kullan\u0131c\u0131n\u0131n hesab\u0131n\u0131 premium&#8217;a y\u00fckseltme<\/li>\n<li>Fatura olu\u015fturma<\/li>\n<li>Abonelik yenileme tarihini g\u00fcncelleme<\/li>\n<li>Ba\u015far\u0131l\u0131 \u00f6deme e-postas\u0131 g\u00f6nderme<\/li>\n<\/ul>\n<p>Bu otomasyonlar manuel yap\u0131lsayd\u0131, her \u00f6deme i\u00e7in bir \u00e7al\u0131\u015fan\u0131n sistemi kontrol etmesi gerekirdi. Webhook sayesinde bu s\u00fcre\u00e7 tamamen otomatiktir.<\/p>\n<h3 id=\"ci-cd-pipeline-github-ve-gitlab\">CI\/CD Pipeline: GitHub ve GitLab<\/h3>\n<p>Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde webhook&#8217;lar, continuous integration ve deployment&#8217;\u0131n temelini olu\u015fturur. GitHub&#8217;a push yap\u0131ld\u0131\u011f\u0131nda webhook tetiklenir ve:<\/p>\n<ul>\n<li>Otomatik testler \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r<\/li>\n<li>Build s\u00fcreci ba\u015flat\u0131l\u0131r<\/li>\n<li>Deployment scripti tetiklenir<\/li>\n<li>Tak\u0131m \u00fcyelerine bildirim g\u00f6nderilir<\/li>\n<\/ul>\n<p>Bu sayede her kod de\u011fi\u015fikli\u011fi an\u0131nda test edilir ve hatas\u0131z bir \u015fekilde canl\u0131ya al\u0131n\u0131r. Geli\u015ftirme h\u0131z\u0131 katlanarak artar.<\/p>\n<h3 id=\"iletisim-ve-crm-slack-discord-hubspot\">\u0130leti\u015fim ve CRM: Slack, Discord, HubSpot<\/h3>\n<p>Webhook&#8217;lar, ekip i\u00e7i ileti\u015fimi de g\u00fc\u00e7lendirir. \u00d6rne\u011fin bir sunucu hatas\u0131 olu\u015ftu\u011funda veya bir m\u00fc\u015fteri destek talebi a\u00e7t\u0131\u011f\u0131nda webhook arac\u0131l\u0131\u011f\u0131yla Slack kanal\u0131na an\u0131nda bildirim d\u00fc\u015febilir.<\/p>\n<p>HubSpot gibi CRM sistemleri de webhook&#8217;lar\u0131 yo\u011fun olarak kullan\u0131r. Yeni bir form dolduruldu\u011funda, e-posta a\u00e7\u0131ld\u0131\u011f\u0131nda veya bir anla\u015fma kazan\u0131ld\u0131\u011f\u0131nda webhook tetiklenir ve ilgili aksiyonlar otomatikle\u015ftirilir.<\/p>\n<h3 id=\"iot-ve-gercek-zamanli-veri\">IoT ve Ger\u00e7ek Zamanl\u0131 Veri<\/h3>\n<p>Nesnelerin interneti (IoT) alan\u0131nda webhook&#8217;lar, sens\u00f6r verilerinin aktar\u0131m\u0131nda kritik rol oynar. Bir s\u0131cakl\u0131k sens\u00f6r\u00fc e\u015fik de\u011feri a\u015ft\u0131\u011f\u0131nda webhook tetiklenir ve uyar\u0131 sistemleri devreye girer. \u00dcretim hatlar\u0131ndan ak\u0131ll\u0131 evlere kadar geni\u015f bir yelpazede webhook&#8217;lar kullan\u0131l\u0131r.<\/p>\n<p>Bu kullan\u0131m alanlar\u0131n\u0131n her biri, g\u00fc\u00e7l\u00fc bir altyap\u0131 gerektirir. \u00c7\u00fcnk\u00fc webhook&#8217;lar y\u00fcksek frekansl\u0131 istekler \u00fcretebilir. <strong>Linux hosting<\/strong> altyap\u0131m\u0131zdaki NVMe SSD diskler ve Ryzen 9 i\u015flemciler, bu yo\u011funlu\u011fu rahatl\u0131kla kald\u0131racak \u015fekilde tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h2 id=\"sss\">S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<h3 id=\"webhook-nedir-ve-ne-ise-yarar\">Webhook nedir ve ne i\u015fe yarar?<\/h3>\n<p>Webhook, bir uygulamada belirli bir olay ger\u00e7ekle\u015fti\u011finde otomatik olarak ba\u015fka bir uygulamaya HTTP iste\u011fi g\u00f6nderen mekanizmad\u0131r. Ger\u00e7ek zamanl\u0131 veri aktar\u0131m\u0131 sa\u011flar. \u00d6deme al\u0131nd\u0131\u011f\u0131nda, yeni sipari\u015f geldi\u011finde veya kod push edildi\u011finde tetiklenir. Manuel kontrol ihtiyac\u0131n\u0131 ortadan kald\u0131rarak s\u00fcre\u00e7leri otomatikle\u015ftirir.<\/p>\n<h3 id=\"webhook-ile-api-arasindaki-temel-fark-nedir\">Webhook ile API aras\u0131ndaki temel fark nedir?<\/h3>\n<p>API&#8217;ler istemcinin istek g\u00f6nderdi\u011fi &#8220;pull&#8221; modeliyle \u00e7al\u0131\u015f\u0131r. Webhook&#8217;lar ise olay ger\u00e7ekle\u015fti\u011finde sunucunun otomatik veri g\u00f6nderdi\u011fi &#8220;push&#8221; modeliyle \u00e7al\u0131\u015f\u0131r. Webhook&#8217;lar daha az kaynak t\u00fcketir ve ger\u00e7ek zamanl\u0131 veri sa\u011flar. API&#8217;ler daha esnek ve karma\u015f\u0131k sorgular i\u00e7in uygundur.<\/p>\n<h3 id=\"n8nde-webhook-nasil-olusturulur\">n8n&#8217;de webhook nas\u0131l olu\u015fturulur?<\/h3>\n<p>n8n&#8217;de yeni bir workflow a\u00e7\u0131p Webhook node&#8217;unu canvas&#8217;a ekleyin. HTTP Method olarak POST se\u00e7in ve bir Path tan\u0131mlay\u0131n. n8n size otomatik bir webhook URL&#8217;si \u00fcretecektir. Bu URL&#8217;yi kaynak uygulamada webhook endpoint&#8217;i olarak kullan\u0131n. Workflow&#8217;u aktif etti\u011finizde webhook dinlemeye ba\u015flar.<\/p>\n<h3 id=\"webhooklar-guvenli-mi\">Webhook&#8217;lar g\u00fcvenli mi?<\/h3>\n<p>Webhook&#8217;lar do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda g\u00fcvenlidir. Ancak a\u00e7\u0131k bir endpoint k\u00f6t\u00fcye kullan\u0131labilir. HMAC imza do\u011frulama, IP allowlist, HTTPS kullan\u0131m\u0131 ve rate limiting gibi \u00f6nlemler al\u0131nmal\u0131d\u0131r. Bu g\u00fcvenlik katmanlar\u0131 uyguland\u0131\u011f\u0131nda webhook&#8217;lar g\u00fcvenle kullan\u0131labilir.<\/p>\n<h3 id=\"webhook-timeout-suresi-ne-kadardir\">Webhook timeout s\u00fcresi ne kadard\u0131r?<\/h3>\n<p>\u00c7o\u011fu webhook sa\u011flay\u0131c\u0131s\u0131 5-30 saniye aras\u0131nda timeout uygular. Stripe 10 saniye, GitHub 10 saniye bekler. Bu y\u00fczden webhook endpoint&#8217;iniz h\u0131zl\u0131 yan\u0131t vermelidir. Uzun s\u00fcren i\u015flemler asenkron yap\u0131lmal\u0131 ve hemen 200 OK d\u00f6n\u00fclmelidir.<\/p>\n<h3 id=\"webhooklari-test-etmek-icin-hangi-araclar-kullanilir\">Webhook&#8217;lar\u0131 test etmek i\u00e7in hangi ara\u00e7lar kullan\u0131l\u0131r?<\/h3>\n<p>webhook.site, anl\u0131k webhook URL&#8217;si \u00fcreterek gelen istekleri g\u00f6r\u00fcnt\u00fclemenizi sa\u011flar. ngrok, lokal sunucunuzu internete a\u00e7arak ger\u00e7ek webhook entegrasyonlar\u0131n\u0131 test etmenize olanak tan\u0131r. Ayr\u0131ca n8n&#8217;in built-in test \u00f6zellikleri de kullan\u0131labilir.<\/p>\n<h3 id=\"webhook-calismiyorsa-ne-yapmaliyim\">Webhook \u00e7al\u0131\u015fm\u0131yorsa ne yapmal\u0131y\u0131m?<\/h3>\n<p>\u00d6nce webhook.site ile endpoint&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n. Ard\u0131ndan HTTP hata kodlar\u0131n\u0131 kontrol edin: 403 firewall sorunu, 404 URL yanl\u0131\u015fl\u0131\u011f\u0131, 500 sunucu hatas\u0131 anlam\u0131na gelir. n8n execution log&#8217;lar\u0131n\u0131 inceleyin. \u0130mza do\u011frulama hatalar\u0131n\u0131 kontrol edin. Son olarak timeout s\u00fcrelerini g\u00f6zden ge\u00e7irin.<\/p>\n<h3 id=\"webhooklar-ucretsiz-mi\">Webhook&#8217;lar \u00fccretsiz mi?<\/h3>\n<p>Webhook&#8217;lar bir \u00f6zellik olarak genellikle \u00fccretsizdir. Ancak webhook&#8217;lar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir sunucu veya n8n gibi bir platform gerekir. n8n a\u00e7\u0131k kaynakl\u0131 ve \u00fccretsizdir, kendi sunucunuzda bar\u0131nd\u0131rabilirsiniz. Bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler ise \u00fccretli olabilir.<\/p>\n<h2 id=\"sonuc-webhooklarla-otomasyonun-gucunu-kesfedin\">Sonu\u00e7: Webhook&#8217;larla Otomasyonun G\u00fcc\u00fcn\u00fc Ke\u015ffedin<\/h2>\n<p><strong>Webhook nedir nas\u0131l kullan\u0131l\u0131r<\/strong> sorusunu bu rehberde ba\u015ftan sona ele ald\u0131k. Webhook&#8217;lar\u0131n temel mant\u0131\u011f\u0131n\u0131, API&#8217;den fark\u0131n\u0131, n8n ile nas\u0131l otomasyon kurulaca\u011f\u0131n\u0131 ve g\u00fcvenlik \u00f6nlemlerini \u00f6\u011frendiniz.<\/p>\n<p>Art\u0131k bir e-ticaret sipari\u015fi geldi\u011finde, bir kod push edildi\u011finde veya bir \u00f6deme al\u0131nd\u0131\u011f\u0131nda sistemlerinizin otomatik olarak aksiyon almas\u0131n\u0131 sa\u011flayabilirsiniz. Bu da size saatlerce manuel i\u015f y\u00fck\u00fcnden tasarruf ettirir.<\/p>\n<p>Haz\u0131rsan\u0131z, bug\u00fcn <strong>n8n &amp; Node.js Hosting<\/strong> altyap\u0131m\u0131zla ilk webhook otomasyonunuzu kurun. AMD Ryzen 9 i\u015flemciler ve NVMe SSD diskler sayesinde webhook&#8217;lar\u0131n\u0131z milisaniyeler i\u00e7inde i\u015flenir. Sorular\u0131n\u0131z i\u00e7in uzman ekibimiz her zaman yan\u0131n\u0131zda.<\/p>\n<p>Webhook&#8217;lar\u0131 bir kez kullanmaya ba\u015flad\u0131\u011f\u0131n\u0131zda, manuel s\u00fcre\u00e7lere d\u00f6nmek istemeyeceksiniz. \u0130\u015fte otomasyonun g\u00fcc\u00fc burada yat\u0131yor.<\/p>\n<div class=\"sm-related-posts\" style=\"background:#f8fafc;border:1px solid #e2e8f0;padding:20px;border-radius:8px;margin-top:30px;clear:both\">\n<h3 style=\"margin-top:0;color:#1e293b;font-size:1.25em\" id=\"%f0%9f%94%97-ilgili-icerikler\">\ud83d\udd17 \u0130lgili \u0130\u00e7erikler<\/h3>\n<ul style=\"margin-bottom:0;padding-left:20px\">\n<li><a href=\"https:\/\/saviorhost.com\/blog\/kurumsal-hosting-secimi-rehberi-2026\/\">Kurumsal Firmalar \u0130\u00e7in Kesintisiz Bulut (Cloud) Hosting Se\u00e7im Rehberi<\/a><\/li>\n<li><a href=\"https:\/\/saviorhost.com\/blog\/504-gateway-timeout-hatasi-cozum\/\">WordPress 504 Gateway Timeout Hatas\u0131 ve Kesin \u00c7\u00f6z\u00fcmleri<\/a><\/li>\n<li><a href=\"https:\/\/saviorhost.com\/blog\/cyberpanel-vs-keyhelp-karsilastirma-2026\/\">CyberPanel vs KeyHelp Kar\u015f\u0131la\u015ft\u0131rmas\u0131: Hangi \u00dccretsiz Panel Daha Performansl\u0131?<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>G\u00f6z\u00fcn\u00fcz\u00fc k\u0131rpmadan saniyeler i\u00e7inde bir e-ticaret sipari\u015fi al\u0131nd\u0131. Stok miktar\u0131 otomatik g\u00fcncellendi. Muhasebe yaz\u0131l\u0131m\u0131na fatura kesildi. Kargo firmas\u0131na bildirim gitti&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":2729,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[81],"tags":[],"class_list":["post-2724","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js"],"_links":{"self":[{"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/posts\/2724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/comments?post=2724"}],"version-history":[{"count":2,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/posts\/2724\/revisions"}],"predecessor-version":[{"id":2734,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/posts\/2724\/revisions\/2734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/media\/2729"}],"wp:attachment":[{"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/media?parent=2724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/categories?post=2724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/saviorhost.com\/blog\/wp-json\/wp\/v2\/tags?post=2724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}