Overview
Icon for Webhook Management

Webhook Management

Configure and manage outgoing webhooks

@lambdacurry/medusa-webhooks

Add webhook functionality to your Medusa e-commerce server, allowing you to send real-time notifications to external services when specific events occur in your system. The plugin seamlessly integrates with Medusa's event system and provides a simple way to manage webhooks for various events.

Features

  • Event-Based Webhooks: Automatically trigger webhooks based on Medusa events like product creation, updates, and more
  • Flexible Configuration: Easy setup and configuration through Medusa's plugin system
  • Built-in Event Support: Pre-configured support for common Medusa events
  • Workflow Integration: Seamlessly integrates with Medusa's workflow system for reliable webhook processing

Installation

  1. Install the plugin using your preferred package manager:
npm install @lambdacurry/medusa-webhooks
# or
yarn add @lambdacurry/medusa-webhooks
  1. Add the plugin to your Copy to clipboardmedusa-config.js:
const plugins = [
// ... other plugins
{
resolve: "@lambdacurry/medusa-webhooks",
options: {
// Add here the subcribers you will define
subscriptions: ["product.created", "product.updated"],
},
},
];
  1. Run migrations:
yarn medusa db:migrate

Usage

Creating a Webhook Subscriber

The plugin provides three different workflows for handling webhooks:

  1. Copy to clipboardgetWebhooksSubscriptionsWorkflow: Retrieves active webhook subscriptions for a specific event
  2. Copy to clipboardsendWebhooksEventsWorkflow: Sends webhook events to the subscribed endpoints
  3. Copy to clipboardfullWebhooksSubscriptionsWorkflow: Combines both workflows to handle the complete webhook process

Here's an example of how to use these workflows in your subscriber:

import {
SubscriberArgs,
SubscriberConfig,
} from "@medusajs/framework/subscribers";
import {
getWebhooksSubscriptionsWorkflow,
sendWebhooksEventsWorkflow,
fullWebhooksSubscriptionsWorkflow,
} from "@lambdacurry/medusa-webhooks/workflows";
export const config: SubscriberConfig = {
event: ["product.created", "product.updated"],
context: {
subscriberId: "product-added",
},
};
export default async function handleProductAdded({
event: { name },
container,

Development

To contribute to this plugin:

  1. Clone the repository
  2. Install dependencies: Copy to clipboardyarn install
  3. Run the plugin: Copy to clipboardyarn dev

Please read more about how to run the plugin in dev mode: https://docs.medusajs.com/learn/fundamentals/plugins/create

License

MIT License

You may also like

Browse all integrations

Build your own

Develop your own custom integraiton

Build your own integration with our API to speed up your processes. Make your integration available via npm for it to be shared in our Library with the broader Medusa community.

gift card interface

Ready to build your custom commerce setup?