This topic describes the
app.yml file as it pertains to your application in Optimizely Connect Platform (OCP).
app.yml file includes the definition of your app—including store details, runtime, and functions and jobs that your app will use.
Understanding the META Section of app.yml
The META section of the app.yml describes the basic elements of your app. It includes the app id, app name, version, support info, and the deployment model for the app.
Here we use an example of a data integration app between Optimizely and Klavio. Here is the app.yml for this integration:
meta: app_id: klaviyo_collect display_name: Klaviyo Collect version: 0.1.0 vendor: zaius summary: Collect Data From Klaviyo support_url: https://www.optimizely.com contact_email: [email protected] categories: - Marketing availabiity: - us
app_id– This is the unique identifier of your application in the OCP platform.
display_name– This is how your app's name will be displayed in the App Directory.
version– This is the version of your app that will be displayed in the App Detail page.
vendor– This is the display name of your firm or company that will be displayed on the App Detail page.
summary– This is the description of your app that will be displayed in the App Directory.
support_url– This is the support url for your app or company that is provided in the App Detail page.
contact_email– This is the email to use for questions or issues with the app.
categories– This is used to tag the app for display sorting in the app directory.
availability– This identifies where the app is going to be deployed on a global basis. The deployment options are:
##This deploys to the US only: availability: - us ##This deploys to both US and EU: availability: - us - eu ##This deploys the app to all current available and future deployment regions: availability: - all
us is a required deployment target. It is not possible to deploy to other regions without also including
us in your list of availability zones.
This is how the options above are displayed on the app identifier card:
Below is a complete example of an app.yml file:
meta: app_id: sample_app display_name: Sample App version: 1.0.0 vendor: optimizely summary: A sample app support_url: https://www.optimizely.com contact_email: [email protected] legal_url: https://optimizely.com/privacy_policy categories: - Accounting & Finance availabiity: - all runtime: node18 environment: - APP_ENV_GLOBAL_SECRET functions: handle_event: entry_point: HandleEvent description: Transforms incoming data into ODP events jobs: historical_import: entry_point: HistoricalImport description: Performs a one-time historical import when triggered nightly_import: entry_point: NightlyImport # runs at midnight every night cron: 0 0 0 ? * * description: Performs a nightly import for data that isn't provided or needed in real time liquid_extensions: generate_coupon: entry_point: GenerateCoupon description: Generates a unique coupon code input: rule: type: string required: true description: The coupon rule to create the coupon from email: type: string required: false description: Email address to tie the coupon code to channel: grouping: messenger targeting: - identifier: sample_app_messenger_id options: prepare: true
Example Data Integration
This app pulls data from an ESP. The
Import job can handle both the historical import and hourly pulls. The
GetEspLists function allows for listing the Lists that exist in the ESP that you can import.
meta: app_id: esp_collect display_name: ESP Collection App version: 1.0.0 vendor: optimizely summary: An app that imports contacts and activity support_url: https://www.optimizely.com support_email: [email protected] categories: - Marketing Automation runtime: node18 functions: get_esp_lists: entry_point: GetEspLists description: Pulls the lists from the ESP to select which ones you want imported jobs: import: entry_point: Import description: Performs a one-time historical import when triggered # Runs every hour cron: 0 0 * * * ?
Example Channel Integration
This app integrates into an SMS vendor for sending. It has the
SmsCallbackHandler that gets the webhook activity that comes from the vendor. It also has all of the details about the channel, how reachability is handled and what type of identifiers are supported.
meta: app_id: sms display_name: SMS version: 1.0.0 vendor: optimizely summary: Deliver transactional and promotional messages over SMS from any ODP campaign support_url: https://apps.optimizely.com/sms contact_email: [email protected] categories: - Channel runtime: node18 functions: sms_callback: entry_point: SmsCallbackHandler description: Handles incoming messages and events about message delivery channel: type: sms targeting: - identifier: phone options: prepare: false events: send: true delivery: true delivery_unknown: true hard_bounce: true soft_bounce: true spam_report: false active_actions: - engage - disengage
Updated 2 days ago