Connects Medusa v2 stores to Signal House for SMS and 10DLC messaging: order and shipping texts, abandoned-cart recovery, consent, and marketing broadcasts.
SMS for Medusa stores, powered by Signal House. Install one package into your Medusa backend and your store can send order and shipping texts, recover abandoned carts, run marketing broadcasts, and track delivery and revenue, all from the Medusa admin.
Requires Medusa 2.19+ and Node 20.19+ or 22.12+, plus a Signal House account and API key.
1. Install
2. Register the plugin and the SMS provider in :
3. Run migrations
npx medusa db:migrateRun this again after every upgrade.
4. Connect your account. Open the Medusa admin and choose Signal House in the sidebar. Paste your API key, then fill in the 10DLC brand registration form.
5. Add an SMS opt-in checkbox to checkout. Your storefront calls with the cart id; the customer gets a "Reply JOIN to confirm" text, and their reply is what opts them in. A ready-made Next.js checkbox is in the consent guide.
6. Receive replies and delivery updates. In Signal House, create a webhook endpoint pointing to , subscribed to , , and . Set its signing secret as on your Medusa host.
Order and shipping texts work as soon as a customer has opted in. Cart recovery and broadcasts stay off until you turn them on (see below).
| Option | Required | Description |
|---|---|---|
| Yes | Signal House API key used to send messages. | |
| Yes | Default sending number. A notification that carries its own overrides it. | |
| No | Signal House API URL. Defaults to . |
Set these on your Medusa host.
| Variable | Default | Purpose |
|---|---|---|
| none | 64 hex characters (for example ). Encrypts the API key stored by the admin page. Needed before you connect an account. | |
| none | Verifies Signal House webhooks for JOIN/STOP replies and delivery tracking. | |
| Turns on cart recovery texts. | ||
| How long a cart sits before it counts as abandoned. | ||
| none | Your storefront's cart recovery page. Without it, recovery texts go out with no link. | |
| Turns on broadcast sending. | ||
| How long after a text an order is credited to it. | ||
| Change only for a non-production Signal House environment. | ||
| Where the admin's billing link points. |
Both ship turned off so each store decides when to send. Before turning them on, read the compliance checklist. The main thing to plan for is send timing: keep these texts between 8am and 9pm in your customers' local time.
The plugin is free. Messages bill to your Signal House wallet like any other Signal House usage, and the admin page shows your plan and wallet status with a link to manage billing.
The full guides ship with the package in :
Questions or issues: signalhouse.io.
MIT
npm install @signalhouse-sms/medusa-plugin1module.exports = defineConfig({2 // ...3 plugins: ["@signalhouse-sms/medusa-plugin"],4 modules: [5 {6 resolve: "@medusajs/medusa/notification",7 options: {8 providers: [9 {10 resolve: "@signalhouse-sms/medusa-plugin/providers/signalhouse-sms",11 id: "signalhouse-sms",12 options: {13 channels: ["sms"],14 apiKey: "<your Signal House API key>",15 senderPhoneNumber: "<your Signal House number>",16 },17 },18 ],19 },20 },21 ],22})