Guide

How to Set Up E-commerce Order Notifications

Notify your team via Slack when a new order arrives, and confirm the order to your customer via Email or WhatsApp -- all from a single API call.

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

Ready to set up order notifications?

Start free with 100 messages/month. No credit card required.

Get started free