Why Multi-Channel Order Notifications Matter
In e-commerce, speed is everything. When a customer places an order, two things need to happen immediately: your team needs to know about it so they can start fulfillment, and the customer needs confirmation that their order went through. Relying on a single channel -- like email -- means delays if inboxes are full, spam filters interfere, or team members are away from their desks.
By sending order notifications through multiple channels simultaneously, you ensure that your team gets alerted instantly on Slack or Telegram, and your customers receive a confirmation on the channel they prefer. This leads to faster fulfillment times, fewer missed orders, and happier customers.
What you will build: A notification system that sends team alerts to Slack with order details, customer confirmations via Email, and optional WhatsApp updates -- triggered automatically when a new order is placed in your e-commerce store.
Step-by-Step Setup
Map Your Notification Flow
Before writing any code, define who gets notified and through which channel. A typical e-commerce notification flow looks like this: New order placed triggers a team alert on Slack (with order details, customer name, and total) plus a customer confirmation via Email. Order shipped sends an update to the customer via Email and WhatsApp with tracking information. Payment failed alerts the team on Slack and Telegram, and sends a retry link to the customer via Email. Planning your flow upfront helps you implement the right notifications from the start.
Configure Your Notification Channels
Log in to One-Ping and set up the channels you need. For e-commerce, the essential channels are: Slack for internal team alerts (to a channel like #orders), Email for customer order confirmations and receipts, and optionally WhatsApp for shipping updates that customers see immediately on their phone. You can also add Telegram for personal mobile alerts to the store owner. Follow the individual channel guides for detailed setup instructions.
Connect Your E-commerce Platform
Most e-commerce platforms support webhooks that fire when events occur. In WooCommerce, go to Settings > Advanced > Webhooks and create a new webhook with the "Order created" topic. In Shopify, go to Settings > Notifications > Webhooks and add a webhook for "Order creation". Point these webhooks at your server endpoint that will process the order data and call One-Ping. If you use a custom store, trigger the One-Ping API call from your order processing code directly.
Build the Notification Logic
Create a server endpoint (or n8n workflow) that receives the webhook from your e-commerce platform, extracts the order data, and calls One-Ping with the appropriate channels and formatting. The code examples below show how to handle a WooCommerce webhook and a Shopify webhook, formatting the data nicely for both team alerts and customer confirmations.
Test the Full Flow
Place a test order in your store and verify that all notifications arrive correctly. Check that the Slack notification includes all relevant order details, that the customer email looks good and includes the order summary, and that any WhatsApp messages are delivered. Check your One-Ping dashboard logs to see the delivery status for each channel. Adjust formatting, add or remove channels, and test again until everything works as expected.
Code Examples
Node.js / Express: WooCommerce Webhook Handler
const express = require('express'); const app = express(); app.use(express.json()); app.post('/webhooks/woocommerce/order', async (req, res) => { const order = req.body; // Team notification: Slack await fetch('https://api.one-ping.com/send', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.ONEPING_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `New order #${order.id} from ${order.billing.first_name} - $${order.total}`, channels: ['slack', 'telegram'], metadata: { slack: { blocks: [ { type: 'header', text: { type: 'plain_text', text: `New Order #${order.id}` }}, { type: 'section', fields: [ { type: 'mrkdwn', text: `*Customer:*\n${order.billing.first_name} ${order.billing.last_name}` }, { type: 'mrkdwn', text: `*Total:*\n$${order.total}` }, { type: 'mrkdwn', text: `*Items:*\n${order.line_items.length} products` }, { type: 'mrkdwn', text: `*Payment:*\n${order.payment_method_title}` } ]} ] } } }) }); // Customer confirmation: Email await fetch('https://api.one-ping.com/send', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.ONEPING_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `Your order #${order.id} has been confirmed!`, channels: ['email'], metadata: { email: { to: order.billing.email, subject: `Order Confirmed - #${order.id}`, html: `<h2>Thank you for your order!</h2> <p>Order #${order.id} has been confirmed.</p> <p>Total: $${order.total}</p> <p>We'll notify you when it ships.</p>` } } }) }); res.json({ received: true }); });
Shopify Webhook Handler
# Python / Flask: Shopify order webhook from flask import Flask, request import requests, os app = Flask(__name__) @app.route('/webhooks/shopify/order', methods=['POST']) def shopify_order(): order = request.get_json() # Send team + customer notifications in one call requests.post( 'https://api.one-ping.com/send', headers={ 'Authorization': f'Bearer {os.environ["ONEPING_API_KEY"]}', 'Content-Type': 'application/json' }, json={ 'message': f'New Shopify order #{order["order_number"]} - ' f'${order["total_price"]} from {order["customer"]["first_name"]}', 'channels': ['slack', 'telegram'], } ) # Customer email confirmation requests.post( 'https://api.one-ping.com/send', headers={ 'Authorization': f'Bearer {os.environ["ONEPING_API_KEY"]}', 'Content-Type': 'application/json' }, json={ 'message': f'Your order #{order["order_number"]} is confirmed!', 'channels': ['email'], 'metadata': { 'email': { 'to': order['email'], 'subject': f'Order Confirmed #{order["order_number"]}' } } } ) return '', 200
Notification Types for E-commerce
Beyond the initial order notification, a complete e-commerce notification system covers the entire order lifecycle. Here are the key notifications to implement:
New Order
Team: Slack with order details. Customer: Email with order confirmation and receipt. Trigger: order.created webhook.
Payment Failed
Team: Slack + Telegram alert. Customer: Email with payment retry link. Trigger: order.payment_failed webhook.
Order Shipped
Customer: Email + WhatsApp with tracking number and link. Team: optional Slack update. Trigger: fulfillment.created webhook.
Refund Issued
Team: Slack notification with reason. Customer: Email confirming refund amount and timeline. Trigger: refund.created webhook.
Low Stock Alert
Team only: Slack + Telegram when inventory drops below threshold. Prevent stockouts before they happen. See our stock alerts guide.
Abandoned Cart
Customer: Email reminder after 1 hour with cart contents. WhatsApp after 24 hours with a discount code to encourage completion.
Using n8n for E-commerce Notifications
If you prefer a no-code approach, n8n is an excellent way to build e-commerce notification workflows. Connect your Shopify or WooCommerce store to n8n using the built-in nodes, add conditional logic to route different order types to different channels, and use the HTTP Request node to call the One-Ping API. n8n's visual workflow builder makes it easy to see your entire notification flow at a glance and modify it without touching code.
n8n template: We publish ready-to-use n8n templates for common e-commerce notification flows. Import them into your n8n instance and customize with your store's webhook URL and One-Ping API key. No coding required.
Best Practices
- Separate team and customer notifications: Use different API calls for team alerts and customer confirmations. This lets you format each appropriately and control which channels each audience receives.
- Include actionable details: Team alerts should include enough information to act on (order ID, customer name, total, items). Include a link to the order in your admin dashboard.
- Respect customer preferences: Not all customers want WhatsApp messages. Let them choose their preferred notification channel during checkout.
- Handle webhook retries: E-commerce platforms retry webhooks if they do not get a 200 response. Make your handler idempotent to avoid sending duplicate notifications.
- Use daily digests for summaries: Instead of just real-time alerts, send a daily sales summary to the team with total orders, revenue, and top products.