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
  • Get Started
  • App Events
  • Create Your First App
  • Root
  • Settlements
    • List Instant Settlements
    • Create Instant Settlement
    • Update Instant Settlement
    • Instant Settlement Details
  • App Details Builder
    • Get Started
    • Components
      • App Information
      • App Features
      • App Reviews
      • App Contact Info
      • App Brands
      • App FAQ
      • App Statistics
  • Settings
    • App Setting Details
    • Update App Settings
  • Subscriptions
    • App Subscription Details
    • Update Subscription Balance
  • Report Creator
    • Overview
    • Getting Started
    • JMESPath Tutorial
    • Salla Reports Examples
    • Understanding the Report Lifecycle
    • Report Types
      • Unit
      • Bar
      • Breakdown
      • Calendar
      • Distribution
      • Pipe
      • Plot
      • Ranking
      • Summary
      • Agrid
  • App Onboarding Steps
    • Overview
    • Get Started
    • Interfaces and Responses
    • Example
  • Communication Apps
    • Overview
    • Get Started
    • Interfaces and Responses
    • Examples
  1. Communication Apps

Get Started

In this guide, you will learn how to build a working Communication App that seamlessly integrates with Salla. By leveraging App Functions, you can intercept Salla's native notification events and route SMS, Email, or WhatsApp messages through your own preferred third-party communication provider.

Prerequisites#

Before diving into the integration, ensure you have completed the foundational setup for your app.
1. Partner Account
If you do not already have a partner account, sign up here.
2. Create App
Create a new app and select Communication App as the app type.
3. Demo Store
Install your app on a demo store to test with real data and configure your App Settings.

System Architecture#

The following diagram illustrates how Salla intercepts notification events and routes them through your custom App Function to your preferred communication provider.
diagram-export-3-10-2026-1_17_42-PM.png

Implementation Guide#

Follow these steps to configure your app, write the delivery logic, and publish your custom communication handler.
1
Configure Supported Features
Supported Features declare which communication channels your app handles. When a merchant installs your app, it becomes the active handler for every message type you declare—Salla routes all matching messages through your App Function instead of the default provider.
Action Required
Your app cannot go live until at least one feature is selected.
1.
In the Partner Portal, open your app and scroll down to the Supported Feature section. Click the Supported Feature button to open the feature selector.
Feature Selector
2.
Choose a channel tab and tick the features your app will handle:
Channel Selection
TabFeatureWhat your app handles
SMSLocal SMSAll SMS messages to KSA numbers
SMSInternational SMSAll SMS messages to numbers outside KSA
EmailEmailAll email messages
WhatsappWhatsappAll WhatsApp messages
3.
Click Save.
Handling Multiple Channels
You can select multiple features. For example, tick both Local SMS and International SMS if your provider handles both domestic and international delivery. Each feature you select means your app takes full ownership of that message type.
2
Add an App Function
In the Partner Portal app editor, scroll to App Functions and click Add New Function.
Add Function
The function builder consists of four main sections:
Function Name: A descriptive identifier (e.g., sms-delivery-handler).
Action Selector: The specific event that triggers this function.
Code Editor: Where you write the custom handler logic.
Preview Panel: A testing environment using real demo store data.
Function Editor
Select the Event Action:
Click Select Action and choose the channel you want to handle.
Action Selection
Select this actionTo handle
communication.sms.sendOutgoing SMS messages
communication.email.sendOutgoing email messages
communication.whatsapp.sendOutgoing WhatsApp messages
You can create one function per channel, or a single master function that branches based on payload.event.)
3
Implement Delivery Logic
Once you select an action, the editor pre-populates the function signature. Replace the body with your delivery logic.
Below is a minimal SMS handler that sends a message via a provider using credentials stored in your app settings.
More Examples
Full implementation examples for SMS, Email, and WhatsApp channels can be found on the Examples page.
4
Test and Validate via Preview
Before publishing, you must test and validate your function with real store data using the preview panel.
1.
In the function editor, click Select Store in the preview panel and choose your demo store.
Select Store
2.
Enter a test value in the preview parameters (for communication events, this is usually a message or customer ID). Then, click Save and Preview.
Preview Results
The preview panel will display the execution status, the response data returned by your function, execution time, console.log() outputs, and detailed error traces if the function failed.
Check Your Settings
Verify that your settings values are populated. If context.settings is empty, it means you have not yet filled in the App Settings form on your demo store.
5
Test End-to-End via Dashboard
Once the function works in the preview environment, test the complete end-to-end flow from the merchant's perspective.
1.
Log in to your demo store's dashboard via the Partner Portal (click Dashboard on your demo store list).
Demo Store Dashboard
2.
Navigate to Apps -> Settings -> Customize.
App Customization
3.
Choose your app as the default handler for the relevant channels (e.g., Local SMS, International SMS).
Merchant Dashboard Settings
4.
Trigger a message from the store (for example, by placing a test order or manually sending a notification to a customer).
Trigger Message
5.
Verify that the message was successfully delivered to your phone/inbox via your chosen provider.
6
Publish Your App
Once all tests pass successfully, publish your function to make it live for merchants.
1.
Return to the Partner Portal and open your app dashboard.
2.
Click Start publishing your app to make the function live and follow the standard publication process.
Publish App
Important Notes
Seamless Updates: Merchants who already have your app installed will receive the updated function capabilities automatically once published.
Sandbox Safety: All edits made in the code editor are saved in a sandbox environment until you explicitly hit publish. Always test thoroughly in the preview panel before pushing changes to production!
Modified at 2026-03-16 11:33:16
Previous
Overview
Next
Interfaces and Responses