وب هوک (Webhook) چیست؟ راهنمای کامل + مثالهای واقعی
وب هوک (Webhook) یک روش ارتباطی هوشمند بین سیستمهاست که باعث میشود هر زمان در یک سرویس رویدادی اتفاق بیفتد، اطلاعات مربوط به آن رویداد به صورت خودکار به سرور یا آدرس مقصد ارسال شود. این انتقال اطلاعات معمولاً با یک درخواست HTTP انجام میشود و باعث میشود سیستمها بدون نیاز به چک کردن مداوم API، با سرعت بسیار بالا با یکدیگر هماهنگ شوند.
یعنی اگر در یک سایت خرید انجام شود، یک پیام ثبت سفارش در لحظه برای سیستم مقصد ارسال میشود. این ساختار باعث شده وب هوک، انتخاب اول توسعهدهندگان و کسبوکارها برای انجام فرایندهای سریع، آنی و بدون نیاز به منابع زیاد باشد. وب هوک در واقع ستون اصلی بسیاری از سیستمهای مدرن مانند پرداخت آنلاین، پیامرسانها، اتوماسیونها، پلتفرمهای فروش و گزارشدهی محسوب میشود.
برای مثال:
فرض کنید در یک فروشگاه اینترنتی یک سفارش جدید ثبت میشود. سیستم فروشگاه فوراً یک وب هوک برای CRM ارسال میکند که در آن نام مشتری، مبلغ سفارش و وضعیت پرداخت آمده است. بدین ترتیب CRM در لحظه متوجه ثبت سفارش شده و کارهای بعدی را انجام میدهد.
وب هوک چیست؟
وب هوک (Webhook) یک URL اختصاصی است که شما در تنظیمات یک سرویس وارد میکنید تا هر زمان یک رویداد مهم در آن سرویس رخ داد، سیستم بهصورت خودکار یک درخواست HTTP (معمولاً POST) همراه با دادههای مربوطه برای آدرس شما ارسال کند. اطلاعات ارسالشده عمدتاً در قالب JSON هستند و شامل جزئیات رویداد مانند نوع رخداد، شناسه سفارش، وضعیت تراکنش یا اطلاعات کاربر میشوند. وب هوک یک ارتباط یک طرفه و لحظهای از سمت سرویسدهنده ایجاد میکند و به همین دلیل سرعت انتقال اطلاعات بسیار بالا و بدون نیاز به Polling (درخواستهای مکرر) است.
مثال واقعی از وب هوک
فرض کنید از یک درگاه پرداخت مثل زرینپال استفاده میکنید. پس از تکمیل موفق پرداخت، زرینپال یک درخواست وب هوک به آدرس سایت شما ارسال میکند که ممکن است شامل دادهای مشابه زیر باشد:
{
"status": "OK",
"amount": 150000,
"ref_id": 123456
}
این داده به سیستم شما اعلام میکند که پرداخت کاربر با موفقیت انجام شده، مبلغ نهایی چه مقدار بوده و شناسه تراکنش چیست. سایت شما نیز میتواند بر اساس همین اطلاعات عملیات فعالسازی سرویس، ارسال پیامک یا ثبت سفارش را انجام دهد.

Webhook چطور کار میکند؟
فرایند عملکرد وبهوک به سه مرحله اصلی تقسیم میشود. در ابتدا شما یک آدرس URL از سیستم خود در تنظیمات سرویس ارائه دهنده ثبت میکنید. سپس در لحظه وقوع یک رویداد، سرویس دهنده یک پیام (Webhook Event) تولید میکند که محتوای آن رویداد است. در مرحله آخر، این پیام از طریق یک درخواست HTTP (معمولاً POST) به URL شما ارسال میشود و شما نیز آن را پردازش کرده و پاسخ مناسب بازمیگردانید.
کارکرد اصلی وب هوک بر اساس سه مرحله انجام میشود:
-
ثبت URL وب هوک در سرویس موردنظر
-
وقوع رویداد (مثلاً پرداخت، ثبت سفارش، ایجاد کاربر)
-
ارسال درخواست POST به آدرس شما همراه با جزئیات رویداد
مثال واقعی:
در وردپرس هنگام ثبت دیدگاه جدید، برخی افزونهها یک وبهوک برای Slack ارسال میکنند تا تیم پشتیبانی در لحظه از نظر جدید مطلع شود.

تفاوت Webhook با API؟ کدام بهتر است؟
وب هوک و API هر دو برای ارتباط بین سیستمها استفاده میشوند، اما روش کارشان فرق دارد. با API شما هر زمان که بخواهید میتوانید اطلاعاتی را از یک سرویس بگیرید یا برایش ارسال کنید. در مقابل، وب هوک فقط وقتی فعال میشود که یک رویداد رخ دهد و همان لحظه اطلاعات را برای شما ارسال میکند (Push). به همین دلیل، API برای درخواستهای مکرر و کنترلشده مناسب است، در حالی که وب هوک برای اطلاعرسانی سریع و لحظهای کاربرد دارد. بسیاری از سرویسها هر دو امکان را ارائه میکنند تا توسعهدهندگان بتوانند بسته به نیاز، بهترین روش را انتخاب کنند.
مثلاً یک سیستم فروشگاهی برای ثبت سفارشها از وب هوک استفاده میکند، اما برای دریافت گزارش فروش ماهانه از API کمک میگیرد.

API ساختاری مبتنی بر درخواست است؛ شما باید درخواست بدهید تا نتیجه دریافت کنید.
اما Webhook کاملاً رویدادمحور است؛ یعنی به محض وقوع اتفاق، خودش به شما پیام میدهد.
مثال:
-
API مثل این است که هر چند دقیقه یکبار درب یخچال را باز کنید ببینید کیک باقی مانده یا نه.
-
وب هوک مثل این است که یک زنگ هشدار روی ظرف کیک نصب کنید و فقط وقتی کسی آن را برداشت، زنگ بزند.
| ویژگی | API | Webhook |
|---|---|---|
| شیوه دریافت اطلاعات | درخواست دستی | ارسال خودکار |
| سرعت | وابسته به درخواست | لحظهای |
| فشار روی سرور | زیاد | بسیار کم |
| مناسب برای | گرفتن داده در زمان دلخواه | دریافت اعلان فوری |
تفاوت وب هوک و API از نظر عملکرد
API به صورت Pull عمل میکند؛ یعنی شما باید به سیستم مقابل درخواست ارسال کنید تا داده دریافت کنید. اگر بخواهید وضعیت پرداختها را لحظهای چک کنید، باید هر چند ثانیه یک بار API را فراخوانی نمایید که هم هزینهبر است و هم منابع زیادی مصرف میکند.
اما Webhook بر اساس Push عمل میکند؛ یعنی سیستم مقابل به محض وقوع یک اتفاق، خودش به شما پیام میدهد. این کار باعث کاهش بار سرور و افزایش سرعت اجرای فرایندها میشود. به همین دلیل وب هوک در سیستمهای حساس مانند پرداخت آنلاین و اعلانهای فوری نقش بسیار مهمی دارد.
API نیازمند چک کردن مداوم (Polling) است، اما وب هوک فقط هنگام وقوع رویداد فعال میشود.
مثال واقعی:
یک اپلیکیشن حسابداری برای دریافت لیست فروشهای روزانه API را فراخوانی میکند، اما برای اعلام لحظهای صدور فاکتور جدید از وب هوک استفاده میکند.

تفاوت Webhook و API از نظر مصرف منابع
استفاده از API در مواردی که نیاز به بررسی دائمی وضعیت دادهها باشد، فشار زیادی به سرور شما و سرور سرویس دهنده وارد کرده و ترافیک غیرضروری ایجاد میکند. اما وب هوکها فقط در زمان وقوع رویداد درخواست ارسال میکنند؛ بنابراین، مصرف منابع تا حد قابل توجهی کاهش مییابد.
تصور کنید برای بررسی وضعیت یک سفارش، هر 10 ثانیه 1000 کاربر درخواست API ارسال کنند. این یعنی 6000 درخواست در دقیقه. ولی با وب هوک، فقط یک درخواست هنگام ثبت سفارش ارسال میشود.
API میتواند هزاران درخواست در دقیقه ایجاد کند و هم سرور شما و هم سرور مقصد را تحت فشار قرار دهد.
وب هوک فقط هنگام وقوع رویداد پیام ارسال میکند، بنابراین مصرف منابع حداقلی است.
مثال:
یک فروشگاه که روزانه 20 هزار تراکنش دارد، اگر برای بررسی وضعیت پرداخت، API را هر 5 ثانیه فراخوانی کند، میلیونها درخواست ایجاد میشود.
اما با وب هوک فقط 20 هزار رویداد واقعی ارسال میشود.

تفاوت Webhook (وب هوک) و API از نظر میزان کنترل
API کنترل بیشتری در اختیار شما قرار میدهد، چون هر زمان بخواهید میتوانید دادهها را دریافت یا ارسال کنید. اما وب هوک فقط وقتی پیام میدهد که یک رویداد خاص اتفاق بیفتد و شما باید طبق ساختاری که سرویس مقابل تعیین کرده کار کنید. به همین دلیل، API برای کارهایی مثل مدیریت پایگاه داده، گزارشگیری و انجام عملیاتهای پیچیده مناسبتر است، در حالی که وب هوک بیشتر برای ارسال اعلانها و اجرای کارهای سریع استفاده میشود.
در واقع، API شبیه یک منوی کامل رستوران است که هر چیزی را هر وقت بخواهید میتوانید سفارش دهید، اما وب هوک مثل زنگ در است که فقط هنگام وقوع یک رویداد به صدا درمیآید.
در نهایت، API به شما امکان میدهد زمان، نوع و محتوای درخواستها را کاملاً کنترل کنید، ولی وب هوک فقط اطلاعاتی را که سرویس مقابل برایتان ارسال میکند در اختیارتان میگذارد.
مثال:
در مدیریت محصول یک فروشگاه، شما برای آپدیت قیمتها از API استفاده میکنید، اما برای اطلاع از ثبت سفارشهای جدید از وب هوک کمک میگیرید.

آیا APIها هنوز هم کاربرد دارند؟
بله، API همچنان بخش جدایی ناپذیر سیستمهای مدرن است. بسیاری از عملیات مانند ثبت داده، بازیابی اطلاعات، ویرایش محتوا، ساخت اپلیکیشنها، مدیریت دیتابیس، کار با کاربر و مدیریت توسعه به API نیاز دارد. وب هوکها فقط یکی از ابزارهای اطلاع رسانی هستند و نمیتوانند جای API را کاملاً بگیرند.
به عنوان مثال، در یک سیستم فروش، API برای دریافت لیست سفارشها، گزارشهای مالی و مدیریت کالا ضروری است، اما وب هوک برای اعلانهای سریع و تغییر وضعیت سفارشها مورد استفاده قرار میگیرد. ترکیب این دو، ساختارهای نرمافزاری را بسیار قدرتمند و کارآمد میکند.
مثال:
یک سیستم پیامکی برای ارسال پیام از API و برای دریافت Delivery Report از Webhook استفاده میکند.

کاربردهای وب هوک چیست؟
کاربردهای وب هوک بسیار گسترده است و در اغلب کسبوکارهای آنلاین، اتوماسیونها، بانکها، فروشگاهها و سیستمهای پرداخت مورد استفاده قرار میگیرد. وب هوکها سرعت اجرای عملیات را بالا میبرند و ارتباط بین سرویسها را هوشمندانه میکنند. از اطلاعرسانی نتیجه تراکنش بانکی گرفته تا ارسال پیام به CRM و سیستمهای پیامکی، وب هوکها نقش اساسی در اتصال سرویسها بدون دخالت انسان دارند.
در ادامه کاربردهای آن در حوزههای مختلف را بررسی میکنیم.

کاربرد وب هوک در توزیع و فروش
در کسبوکارهای فروشگاهی، مدیریت موجودی، قیمتگذاری، ارسال سفارش و هماهنگی با انبار از اهمیت بالایی برخوردار است. وب هوکها در این زمینه کمک میکنند تا پس از ثبت سفارش، اطلاعات خرید بهطور خودکار به سیستم انبار، واحد ارسال، CRM و واحد حسابداری ارسال شود. این جریان اطلاعات باعث کاهش خطای انسانی و سرعت بیشتر پردازشها میشود.
بهعنوان نمونه، در یک فروشگاه اینترنتی پس از خرید مشتری، وب هوک به سیستم انبار پیام میدهد تا موجودی کالا کاهش یابد و سفارش به بخش بستهبندی منتقل شود.
در سیستمهای فروش، وب هوکها اقداماتی مثل کاهش موجودی انبار، ثبت فاکتور، ارسال اعلان به تیم بستهبندی، اتصال به CRM و هماهنگی با سیستم ارسال را در لحظه انجام میدهند.
مثال:
در دیجیکالا، پس از ثبت سفارش، وب هوک وضعیت کالا را به انبار ارسال میکند تا فرآیند بستهبندی آغاز شود.

کاربرد وب هوک برای بانکها
بانکها و درگاههای پرداخت برای اعلام وضعیت تراکنشها از وبهوک استفاده میکنند. این سیستم بهصورت لحظهای اطلاعات پرداخت، لغو تراکنش، خطا یا نتیجه انتقال وجه را برای سایت یا اپلیکیشن ارسال میکند.
از آنجا که امنیت و سرعت در عملیات بانکی اهمیت بسیار زیادی دارد، وب هوک بهترین راه برای اعلام وضعیت تراکنش است. برای مثال، پس از پرداخت موفق در درگاه اینترنتی، وب هوک به سایت شما اطلاع میدهد که تراکنش تایید شده و شما میتوانید سفارش را فعال کنید.
بانکها برای اطلاعرسانی لحظهای تراکنشها از وب هوک استفاده میکنند.
این موضوع در سرویسهای پرداخت آنلاین بسیار حیاتی است چون وضعیت تراکنش باید دقیقاً در همان لحظه مشخص شود.
مثال واقعی:
در PSPها مثل شاپرک، نتیجه تراکنش از طریق وب هوک به فروشگاه ارسال میشود تا سفارش فعال شود.

بهکارگیری وب هوک برای اتوماسیون کارها در n8n/Zapier
پلتفرمهایی مثل n8n ،Zapier و Make برای اجرای اتوماسیونهای هوشمند به وب هوک متکی هستند. این سرویسها با دریافت اطلاعات از یک منبع، بهطور خودکار چندین مرحله بعدی را اجرا میکنند.
برای مثال، اگر یک فرم ثبتنام پر شود، وب هوک دادهها را دریافت کرده و Zapier آن را در Google Sheets ذخیره میکند، سپس پیام خوشامدگویی برای کاربر ارسال میشود و یک تیکت پیگیری در CRM ایجاد میگردد. این فرآیند بدون نیاز به برنامهنویسی، فقط با استفاده از وب هوک و اتوماسیونها قابل انجام است.
این سرویسها به شدت وابسته به وب هوک هستند تا رویدادهای بیرونی را دریافت کنند و بر اساس آنها دهها فرآیند دیگر را اجرا کنند.
مثال:
کاربر فرمی را پر میکند > وبهوک فعال میشود > Zapier داده را در Google Sheets ذخیره میکند > ایمیل خوشامدگویی میفرستد > یک رویداد پیگیری در CRM ایجاد میکند.

استفاده از وب هوک در کسبوکارها
هر کسبوکاری که بخواهد فرآیندهای خود را سریعتر، دقیقتر و بدون خطا انجام دهد از وبهوک استفاده میکند. از فروشگاههای اینترنتی گرفته تا شرکتهای بزرگ نرمافزاری، کسبوکارهای SaaS، سیستمهای حسابداری، CRM، باشگاه مشتریان و سامانههای پشتیبانی، همگی به وب هوک متکی هستند.
برای مثال، در یک سیستم پشتیبانی مشتری، هر زمان کاربر تیکت جدید ایجاد کند، یک وب هوک به Slack ارسال میشود و تیم پشتیبانی بدون تأخیر موضوع را بررسی میکند.
کسبوکارها از وب هوک برای هماهنگی سیستمها، کاهش خطا، سرعت بخشیدن به عملیات، و اجرای فرآیندهای خودکار استفاده میکنند.
مثال واقعی:
در رستورانهای آنلاین، پس از ثبت سفارش، وب هوک اطلاعات را مستقیم به چاپگر آشپزخانه ارسال میکند تا سفارش همان لحظه چاپ شود.

کاربرد وب هوک برای پرداخت آنلاین
در حوزه پرداخت آنلاین، وب هوک نقش کلیدی دارد. وب هوکها برای اعلام نتیجه تراکنشها، تأیید پرداخت، مدیریت وضعیت سفارشها و جلوگیری از تقلب استفاده میشوند. سیستم پرداخت فقط زمانی وب هوک ارسال میکند که وضعیت تراکنش قطعی شده باشد، در نتیجه از ثبت سفارشهای اشتباه جلوگیری میشود.
به عنوان مثال، اگر کاربر پرداخت را انجام دهد، درگاه یک وب هوک با حالت “پرداخت موفق” برای سایت شما ارسال میکند و سیستم فروش بهطور خودکار سفارش را فعال کرده، پیامک تایید ارسال و فاکتور صادر میشود.
در پرداخت آنلاین، وب هوک نقش بسیار حیاتی دارد زیرا باید وضعیت تراکنش سریع، امن و دقیق اعلام شود.
مثال:
درگاه پرداخت پس از انجام تراکنش، وب هوک ارسال میکند:
- اگر موفق: سفارش فعال شود
- اگر ناموفق: سفارش لغو شود
- اگر در انتظار: کاربر مطلع گردد
این فرآیند اگر با API انجام شود بسیار پرهزینه و کند خواهد بود.

نقش وب هوک در سیستمهای پیامک
سیستمهای پیامکی از وب هوک برای اعلام وضعیت پیامها، ارائه گزارش ارسال (Delivery Report) و ثبت پیامکهای ورودی استفاده میکنند. این موضوع برای کسبوکارهایی که کمپینهای پیامکی اجرا میکنند اهمیت زیادی دارد، زیرا باید بدانند کدام پیام ارسال شده یا با خطا مواجه شده است.
بهعنوان مثال، اگر پیامک ارسال شده به مشتری Delivered شود، سامانه پیامکی وب هوک ارسال میکند و سیستم CRM وضعیت کمپین را به “ارسال موفق” تغییر میدهد. این فرایند باعث میشود کسبوکارها گزارش دقیقتری از عملکرد پیامکی خود داشته باشند.
سیستمهای پیامکی از وب هوک برای دریافت گزارش ارسال (Delivery Report)، پیامهای دریافتی کاربران و خطاهای احتمالی استفاده میکنند.
مثال واقعی:
اگر پیامک تبلیغاتی شما به یک شماره نرسد، وب هوک این وضعیت را به CRM اطلاع میدهد تا شماره مخاطب در لیست سیاه قرار بگیرد.

چرا باید از وب هوکها استفاده کنیم؟
استفاده از وبهوک به معنای کاهش هزینهها، افزایش سرعت عملیات و بهبود کیفیت ارتباط میان سرویسهاست. وبهوک باعث میشود دادهها تنها در زمان نیاز ارسال شوند، مصرف منابع به حداقل برسد و احتمال بروز خطاهای انسانی کاهش یابد. همچنین امنیت دادهها و صحت اطلاعات در سیستمهایی مانند پرداخت آنلاین بسیار بیشتر میشود.
کسبوکارهایی که از وب هوک استفاده میکنند میتوانند فرآیندهای خود را هوشمند کرده و تجربه کاربری بهتری ارائه دهند.
وب هوکها سرعت، امنیت، دقت و هماهنگی بین سیستمها را افزایش میدهند.
از طرفی، مصرف منابع کاهش مییابد و هزینهها پایین میآید.
مثال:
یک CRM که روزانه هزاران تیکت دارد، به کمک وب هوک میتواند در لحظه از پیامهای جدید اطلاع پیدا کند بدون اینکه API را هزاران بار فراخوانی کند.

امنیت در وب هوکها چگونه تأمین میشود؟
وب هوکها باید ایمن باشند زیرا رویدادهای مهمی را منتقل میکنند. برای افزایش امنیت معمولاً از امضای دیجیتال (Signature)، کلیدهای خصوصی، IP Whitelist و Tokenهای امنیتی استفاده میشود. این موارد کمک میکنند فقط سرویس معتبر بتواند داده را ارسال کند.
مثال:
Stripe یک Header با نام Stripe-Signature ارسال میکند که امضای دیجیتال دارد و شما باید آن را تأیید کنید.

مزایا و معایب وب هوکها
مزایا: سرعت بالا، مصرف کم منابع، اجرای خودکار عملیات، زمانبندی دقیق
معایب: کنترل کمتر نسبت به API، نیاز به مدیریت خطا، وابستگی به پایداری سرویس ارسال کننده
مثال معایب:
اگر وب هوک ارسال شود اما سرور شما برای چند ثانیه Down باشد، ممکن است آن پیام را از دست بدهید مگر اینکه مکانیزم Retry فعال باشد.

چالشهای رایج در استفاده از وب هوک
گاهی سرویس دهنده حجم زیادی وب هوک ارسال میکند و اگر زیرساخت آماده نباشد ممکن است پردازش درخواستها دشوار شود. همچنین مدیریت Retry، احراز هویت، و ثبت لاگها جزء چالشهای مهم وب هوک است.
مثال:
اگر یک سیستم پیامکی در یک کمپین 100 هزار پیام ارسال کند، ممکن است 100 هزار Delivery Report هم برای وب هوک ارسال شود و سرور شما باید آماده باشد.

بهترین روشها (Best Practices) برای پیادهسازی وب هوک
- ثبت لاگ از تمام رویدادها
- تأیید امنیت دادهها
- ارسال پاسخ HTTP مناسب
- استفاده از Retry
- ساختن Queue برای پردازش
مثال:
در بسیاری از شرکتهای بزرگ از Kafka یا RabbitMQ برای صفبندی وب هوکها استفاده میشود.

جمعبندی
وب هوک یکی از سریعترین و کاربردیترین روشها برای ارتباط سیستمها با یکدیگر است. تقریباً همه سرویسهای حرفهای از آن پشتیبانی میکنند و با استفاده از Webhook میتوان یک سیستم را کاملاً هوشمند، خودکار و سریع کرد.
وب هوکها به عنوان مکانیزمی برای ارسال نوتیفیکیشنهای لحظهای عمل میکنند و به جای اینکه سیستم مبدأ به صورت دورهای سیستم مقصد را برای تغییرات جدید بررسی کند (پولینگ), سیستم مبدأ به محض وقوع یک رویداد خاص، دادهها را به صورت خودکار به سیستم مقصد ارسال میکند. این ویژگی نه تنها باعث کاهش بار سرور و مصرف منابع میشود، بلکه تأخیر در انتقال اطلاعات را به حداقل میرساند و امکان واکنشهای آنی را فراهم میکند.
از کاربردهای رایج وب هوکها میتوان به هماهنگسازی اطلاعات بین پلتفرمهای مختلف (مانند CRM و ابزارهای بازاریابی), اطلاعرسانی در زمان واقعی در اپلیکیشنهای پیامرسان (مانند Slack), اتوماسیون فرآیندهای کاری و یکپارچهسازی سیستمهای پرداخت اشاره کرد. به این ترتیب، وب هوکها ستون فقرات بسیاری از سیستمهای مدرن و متصل به هم محسوب میشوند و به توسعهدهندگان کمک میکنند تا تجربههای کاربری روانتر و کارآمدتری را ارائه دهند



