Salla Docs
Merchant
Merchant
  • Merchant API
  • Salla OAuth 2.0
  • Merchant Dashboard
Partner APIs
Partner APIs
  • App API
  • Shipments & Fulfillment APIs
  • Salla AWB
  • Recurring Payments API
  • App Functions
  • Billing System Salla partners
  • Report Builder
  • App Onboarding
  • Communication Apps
Storefront
Storefront
  • Twilight Engine
  • Twilight SDK
  • Web Components
  • Ecommerce Events
  • Component Bundle
  • Change Log
Salla CLI
Merchant
Merchant
  • Merchant API
  • Salla OAuth 2.0
  • Merchant Dashboard
Partner APIs
Partner APIs
  • App API
  • Shipments & Fulfillment APIs
  • Salla AWB
  • Recurring Payments API
  • App Functions
  • Billing System Salla partners
  • Report Builder
  • App Onboarding
  • Communication Apps
Storefront
Storefront
  • Twilight Engine
  • Twilight SDK
  • Web Components
  • Ecommerce Events
  • Component Bundle
  • Change Log
Salla CLI
Salla - Opensource
Salla - Developers Community
  1. Communication Apps
  • Overview
  • Get Started
  • Interfaces and Responses
  • Examples
Merchant
Merchant
  • Merchant API
  • Salla OAuth 2.0
  • Merchant Dashboard
Partner APIs
Partner APIs
  • App API
  • Shipments & Fulfillment APIs
  • Salla AWB
  • Recurring Payments API
  • App Functions
  • Billing System Salla partners
  • Report Builder
  • App Onboarding
  • Communication Apps
Storefront
Storefront
  • Twilight Engine
  • Twilight SDK
  • Web Components
  • Ecommerce Events
  • Component Bundle
  • Change Log
Salla CLI
Merchant
Merchant
  • Merchant API
  • Salla OAuth 2.0
  • Merchant Dashboard
Partner APIs
Partner APIs
  • App API
  • Shipments & Fulfillment APIs
  • Salla AWB
  • Recurring Payments API
  • App Functions
  • Billing System Salla partners
  • Report Builder
  • App Onboarding
  • Communication Apps
Storefront
Storefront
  • Twilight Engine
  • Twilight SDK
  • Web Components
  • Ecommerce Events
  • Component Bundle
  • Change Log
Salla CLI
Salla - Opensource
Salla - Developers Community
  1. Communication Apps

Interfaces and Responses

Interfaces and Responses#

Communication Apps react to events triggered by Salla. Each event delivers a specific context object to your App Function, and your function is expected to return a structured response.
For App Functions fundamentals (execution types, Resp utility, runtime constraints, testing), see the App Functions reference.

Available events#

The events your function receives are controlled by the Supported Features you declared in the Partner Portal (see Get Started - Step 1).
EventFires whenControlled by Supported Feature
communication.sms.sendSalla needs to send an SMS to a customerLocal SMS and/or International SMS
communication.email.sendSalla needs to send an email to a customerEmail
communication.whatsapp.sendSalla needs to send a WhatsApp message to a customerWhatsApp

CommunicationEvent interface#

This is the full TypeScript shape of the context object your handler receives.

Context object (JSON Example)#

{
  "payload": {
    "event": "communication.sms.send",
    "merchant": 292111819,
    "created_at": "Mon Nov 10 2025 17:18:13 GMT+0300",
    "data": {
      "notifiable": ["+96656000000"],
      "type": "order.status.updated",
      "content": "Your order #123 is now [Delivered]",
      "entity": { "id": 12345, "type": "order" },
      "meta": { "customer_id": 98765 }
    }
  },
  "settings": {
    "sms_api_key": "your-key",
    "sms_sender_id": "MyStore"
  },
  "merchant": { "id": "292111819" }
}

Event Reference#

These are the common event types your app receives through the data.type field. Each event includes specific metadata and relates to a store entity.

Authentication#

OTP Verification#

Sent when a customer requests a verification code for login or registration.
Type: auth.otp.verification
Supported Channels: SMS, Email, WhatsApp
Entity Type: null
Meta Fields:
code: (string) The 4-digit numeric verification code.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "auth.otp.verification",
    "content": "Your verification code is: 1234",
    "entity": null,
    "meta": { "code": "1234" }
  }
}

Orders#

Order Status Confirmation#

Sent when an order is created and is pending payment.
Type: order.status.confirmation
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer who placed the order.
Example JSON:
{
  "event": "communication.email.send",
  "data": {
    "notifiable": ["customer@example.com"],
    "type": "order.status.confirmation",
    "content": "We received your order #123. Please complete payment.",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Order Status Updated#

Sent when the status of an order is changed (e.g., from Processing to Delivered).
Type: order.status.updated
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "order.status.updated",
    "content": "Your order #123 is now [Delivered]",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Invoice Issued#

Sent when an invoice is generated for an order.
Type: order.invoice.issued
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.email.send",
  "data": {
    "notifiable": ["customer@example.com"],
    "type": "order.invoice.issued",
    "content": "Your invoice for order #123 is ready.",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Shipment Created#

Sent when a shipment is created for an order.
Type: order.shipment.created
Supported Channels: Email, SMS, WhatsApp
Entity Type: shipment
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "order.shipment.created",
    "content": "Your shipment for order #123 is on its way. Tracking: SHP123",
    "entity": { "id": 456, "type": "shipment" },
    "meta": { "customer_id": 987 }
  }
}

Digital Product Code#

Sent when a customer purchases a digital product that includes a code.
Type: product.digital.code
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "product.digital.code",
    "content": "Your digital code for Order #123 is: ABC-DEF",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Order Refunded#

Sent when an order is refunded to the customer.
Type: order.refund.processed
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.email.send",
  "data": {
    "notifiable": ["customer@example.com"],
    "type": "order.refund.processed",
    "content": "A refund has been processed for your order #123.",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Gift Order Placed#

Sent when a customer places an order as a gift for someone else.
Type: order.gift.placed
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "order.gift.placed",
    "content": "Someone sent you a gift! Your gift order #123 has been placed.",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Payment Reminder#

Sent as a reminder for a pending payment on an order.
Type: payment.reminder.due
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "payment.reminder.due",
    "content": "Friendly reminder: Your order #123 is waiting for payment.",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Products#

Product Availability Alert#

Sent when a product that was out of stock becomes available.
Type: product.availability.alert
Supported Channels: Email, SMS, WhatsApp
Entity Type: product
Meta Fields:
customer_id: (number) The ID of the customer who requested the alert.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "product.availability.alert",
    "content": "Good news! The product you wanted is back in stock.",
    "entity": { "id": 555, "type": "product" },
    "meta": { "customer_id": 987 }
  }
}

Customers#

Abandoned Cart Reminder#

Sent to remind a customer about items left in their cart.
Type: customer.cart.abandoned
Supported Channels: Email, SMS, WhatsApp
Entity Type: cart
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.whatsapp.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "customer.cart.abandoned",
    "content": "You left items in your cart! Complete your purchase here: [link]",
    "entity": { "id": 789, "type": "cart" },
    "meta": { "customer_id": 987 }
  }
}

Rating Request#

Sent to request a customer to rate their experience after an order is completed.
Type: customer.rating.request
Supported Channels: Email, SMS, WhatsApp
Entity Type: order
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.whatsapp.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "customer.rating.request",
    "content": "How was your order #123? Rate us here: [link]",
    "entity": { "id": 123, "type": "order" },
    "meta": { "customer_id": 987 }
  }
}

Feedback Reply#

Sent when a merchant replies to customer feedback or reviews.
Type: customer.feedback.reply
Supported Channels: Email, SMS, WhatsApp
Entity Type: feedback
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.email.send",
  "data": {
    "notifiable": ["customer@example.com"],
    "type": "customer.feedback.reply",
    "content": "The merchant replied to your review: Thank you for your feedback!",
    "entity": { "id": 321, "type": "feedback" },
    "meta": { "customer_id": 987 }
  }
}

Loyalty Points Earned#

Sent when a customer earns loyalty points from a purchase or action.
Type: customer.loyalty.earned
Supported Channels: Email, SMS, WhatsApp
Entity Type: null
Meta Fields:
customer_id: (number) The ID of the customer.
points: (number) The amount of points earned.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "customer.loyalty.earned",
    "content": "Congratulations! You earned 50 loyalty points.",
    "entity": null,
    "meta": { "customer_id": 987, "points": 50 }
  }
}

Marketing & System#

Campaign Broadcast#

Sent during a mass marketing campaign.
Type: marketing.campaign.broadcast
Supported Channels: Email, SMS, WhatsApp
Entity Type: null
Meta Fields: null
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "marketing.campaign.broadcast",
    "content": "Flash Sale! Get 50% off today only.",
    "entity": null,
    "meta": {}
  }
}

Custom System Message#

Sent when a custom or generic system message is triggered.
Type: system.message.custom
Supported Channels: Email, SMS, WhatsApp
Entity Type: null
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.email.send",
  "data": {
    "notifiable": ["customer@example.com"],
    "type": "system.message.custom",
    "content": "This is a custom message from the store.",
    "entity": null,
    "meta": { "customer_id": 987 }
  }
}

General System Alert#

Sent when a general system notification or alert is triggered.
Type: system.alert.general
Supported Channels: Email, SMS, WhatsApp
Entity Type: null
Meta Fields:
customer_id: (number) The ID of the customer.
Example JSON:
{
  "event": "communication.sms.send",
  "data": {
    "notifiable": ["+96656000000"],
    "type": "system.alert.general",
    "content": "A security alert has been triggered for your account.",
    "entity": null,
    "meta": { "customer_id": 987 }
  }
}

Entity Type Reference#

When an event includes an entity object, the id refers to the corresponding resource. Use these links to the Salla API documentation to learn how to fetch more details about these entities if your App Function requires more context than what is provided in the payload.
Entity TypeDescriptionAPI Reference
orderA unique identifier for a store order.Order API
shipmentA unique identifier for a shipment.Shipment API
cartA unique identifier for a shopping cart.Abandoned Cart API
feedbackA unique identifier for a customer review.Review API
productA unique identifier for a product.Product API

Next steps#

Explore practical code examples for all channels: Examples
Modified at 2026-03-08 22:10:55
Previous
Get Started
Next
Examples