Step 2: Design your app
Each app may contain a number of different components, and depending on the functionality you want to create, some components are required and others are optional.
This section provides details about each component, including where it is required and what it is used for. It also includes a selection of sample architectures using the different components.
App components
The following sections describe the typical app components and explain where and why they are needed.
App shell
- Required for: Answers bot blocks, Conversations context cards, Moments Flow elements, any app listed on the marketplace
- Used for: Presenting a configuration page, storing
- What is it: A collection of data stored in an app in the Publish tab of Exchange
Manifest
- Required for: Answers bot blocks, Conversations context cards, Conversations full-page apps, and Moments Flow elements
- Used for: Connecting the app to Answers, Conversations, or Moments, providing the Infobip product the information it needs to correctly display the app in the user interface
- What is it: A JSON or YAML file, describing the app’s API structure or context card location
Context card UI page
- Required for: Conversations context cards, Conversations full-page apps
- Used for: Displaying helpful user content to Conversations Contact center agents.
- What is it: A website, displayed in an iframe within the agent’s Conversations dashboard
API endpoint
- Required for: Answers bot blocks and Moments Flow elements
- Used for: Executing the functions needed in the app, and it ometimes combined with an API middleware to match user account profiles and settings, and to create the request to the platform API endpoint
- What is it: An API endpoint accessible to the API middleware or Infobip Exchange
API middleware
- Optional for: Any type of app
- Used for: Interpreting the requests from Exchange and formatting them for the final API endpoint, or managing the flow of data; middleware can use data from an App Settings database to handle account mappings and other account-level settings
- What is it: An API endpoint accessible to Infobip Exchange
Configuration Page UI
- Optional for: Any type of app
- Used for: Collecting account level settings for an app, commonly used to connect an Infobip user’s account to an external platform account, or to collect account-level settings such as language preferences
- What is it: A website, displayed in an iframe within the Exchange marketplace
App settings database
- Optional for: Any type of app
- Used for: Storing account level settings defined on the Configuration Page UI, and used by the context card UI or API middleware to apply the account settings
- What is it: A database storing information like account mappings, user preferences, and so on
App component requirement
The following table describes where each app component is required by default and which are optional.
| Answers bot block | Conversations context card | Moments - Flow element | People API data sync | Channels API integration |
---|---|---|---|---|---|
App shell | Required | Required | Required | Optional | Optional |
Manifest | Required | Required | Required | Not used | Not used |
Context Card UI | Not used | Required | Not used | Not used | Not used |
API endpoint | Required | Optional | Required | Required for 2-way data sync | Optional |
API Middleware | Optional | Optional | Optional | Optional | Optional |
Configuration Page UI | Optional | Optional | Optional | Optional | Optional |
App Settings database | Optional | Optional | Optional | Optional | Optional |
Sample architectures
The following diagrams show sample architectures for different types of app.