Building an advertisement application on the Elarian platform.
AdApp is a simple application that pays users for listening to ads via phone calls. It integrates Elarian's Messaging and Payments services.
Elarian provides infrastructure for building reactive, scalable applications fast. At its core, Elarian is a customer data and automation platform. It helps you organize and work with your customer data, even as you perform basic actions such as sending messages or handling payments; this data encompasses communications, payments, and activities generated from sources such as websites and mobile apps.
The root owner of data in Elarian is an organization, which is identified by a unique orgId. Engagement data within an organization can then be contextualized further using applications identified by a unique appId. An example of this would be a survey application or a loyalty program application, all within the same organization.
While establishing a connection to Elarian, an appId is required to indicate which application should be used to contextualize the following engagement data.
Customer Data Management
Elarian provides several constructs to help you organize your customer data. The broad categories of supported customer data are Identity Data, Metadata, and App Data.
Identity Data refers to data that allows your application to identify one customer or groups of customers. At the moment, there are four primary pieces of identity data, and these are customerNumber, customerId, secondaryId, and tags.
Metadata allows you to store arbitrary data about your customer in a key-value map associated with a unique customer. The data can be in either string or binary format, which allows you to serialize complex objects and associate them with the customer. Examples of metadata could be a user's address, language preference, or gender.
App Data allows you to store arbitrary data to help determine the state of a user for a specific application. Using the survey application as an example, you could use app data to store what question you're currently waiting for the user to answer. App data can also be in string or binary format.
A customer can have multiple instances of app data linked to them, e.g., the survey app data and the loyalty program app data. The appId passed while establishing a connection determines the instance of the customer's app data that will be made available. Another way to think about this is establishing connections to different databases, only that the database (app data) stores information for a single customer.
Elarian allows you to initiate requests to customers and handle notifications from customers through communication or payment providers. In line with the customer being the unit of abstraction, all data that a customer generates is stored in the customer's perspective, making it easy for your application to build a better profile of the customer's behavior.
Elarian accepts a sendMessage command, where you specify the customerNumber, channelNumber, and the message to send. Elarian supports messaging across various channels, namely, SMS, Voice, Ussd, WhatsApp, Facebook Messenger, Telegram, and Email.
Elarian provides a rich infrastructure for managing payments. We provide functionality for storing money into purses owned by organizations or wallets owned by customers. You can create as many purses or wallets as you need.
Elarian then allows you to initiate payments through different providers (MNOs, Banks, etc.) and process received payments that come in from those providers.
Elarian allows you to track customer activity data from various sources such as mobile or web applications. This customer activity data helps you build an even richer profile of your customer's behavior. You can then correlate this activity data to your customer's messaging and payment data to make intelligent engagement decisions.
A simple e-commerce example might be tracking a customer's abandonment of their shopping cart and sending them a reminder on SMS or WhatsApp to buy the products before getting out of stock.
Anthony is passionate about how technology can impact our day to day lives and helping developers fulfil this need
Developer Relations Community