LogoLogo
Changelog
18.5
18.5
  • Welcome
    • Welcome to Airkit 👋
    • Quickstart
  • Concepts
    • Sessions
      • Linking to Sessions
    • Actors
      • Conversations with Actors
  • Tutorials
    • Building A Contact Form
      • Building the Web UI
      • Building the Database
      • Finalizing the App
      • Connecting Forms to Salesforce
    • Styles, Themes, and Templates
      • Changing the header
      • Changing the Theme
      • Using a custom font
      • Using Animations
    • Multi-Page Form
      • Creating the App Object in AirData
      • Building the Form’s UI
      • Creating the Data Flow to insert data
      • Connecting the Data Flow to the UI
      • Previewing and Publishing the app
    • Scheduling and Follow-Up App
      • Collecting Contact Information
      • Creating Appointment Times
      • Saving Appointment Information
      • Scheduling Appointment Reminder
      • Automating Proactive Follow-Up
      • Requesting Feedback
    • Custom Integrations (Petfinder App)
      • Querying the Petfinder API
      • Displaying Petfinder Data
  • Platform
    • Console
      • Apps
      • Activity
      • App Health
      • Datastores
      • Integrations
      • Conversations
      • Resources
      • API
      • Settings
    • Studio
      • Builder Bar
        • Triggers Builder
        • Web Flows Builder
        • Chat Bots Builder
        • Answer Flows Builder
        • Voice Bots Builder
        • Connections Builder
        • Notifications Builder
        • AirData Builder
        • Media Library
        • Theme Builder
        • Schedules Builder
        • Settings
      • App Preview
      • Data Flows
      • Variable Tree
      • Data Model Editor
      • Events
        • Session Started Events
        • Trigger Events
        • Control Events
        • Session Events
        • Activity Group Events
        • Action Chains
  • Data and Integrations
    • Working with Data
      • Variable Namespaces
      • Standard Session Data
      • AirData
        • AirData App Objects
        • Datastores
        • Identity Objects
        • Place Objects
        • Schedule Objects
      • Airscript Quickstart
        • Working with Dates and Times
        • Working with Missing Values
        • Working with URLs and Base64
      • Pull Values from Lists and Objects
        • Path Expressions
        • Query Expressions
      • Making Forms from Data Models
    • Integrations
      • First Party Integrations
        • Creating A Salesforce Lead
        • Creating a Zendesk Ticket
        • Creating SFTP Credentials
        • Swagger Schema Validation
        • First Party Integration Reference
          • Airtable Integration
          • Genesys Widget Integration
          • Google Integration
          • Guidewire Integration
          • Hubspot Integration
          • Kustomer Integration
          • MX Integration
          • Plaid Integration
          • Salesforce Integration
          • SendGrid Integration
          • SFTP Integration
          • Shopify Integration
          • Stripe Integration
          • Twilio Integration
          • Zendesk Integration
      • Custom Integrations
        • OAuth 2.0
        • API Token
        • HTTP Basic Auth
        • Custom Token
        • SFTP
        • Examples: Twitter and Giphy
      • App APIs
        • Building an App API
      • Subscriptions (Web Hooks)
  • Texts, Calls and Emails
    • SMS
      • SMS Notification Basics
      • Chat Bot Basics
      • Texting Journey Links
      • Data from Inbound Calls/SMS
      • Connecting Twilio Numbers
    • Emails
      • Email Notification Basics
      • Sending Emails by Data Operation
      • Connecting Email Addresses
    • Voice Bots
      • Voice Bot Basics
    • Conversation Chat Bots
      • Setting Up Answer Groups
      • Configuring Conversation Chat Bots
        • Salesforce Relays
        • Kustomer Relays
  • Web Apps
    • Forms
      • Displaying Controls Dynamically
      • Repeating Elements
      • Prefilling Forms
      • Validation of User Data
      • Capture Secure User Data
      • Progress Bars
      • Dropdown Menus
      • Electronic Signatures
    • Calendars
      • Customizing Schedule Availability
      • Using Availability Schedules
      • Rescheduling Deflected Calls
      • Integrating to External Calendars
    • Maps and Addresses
      • Maps
      • Addresses
      • User's Current Location
      • Address Search Map Binding
    • Payments
      • Creating a Stripe Integration
    • Timers and Reminders
      • Setting Timers
      • Setting up Periodic Tasks
    • PDFs
      • Creating a PDF
      • Working with Existing PDFs
      • Adding Assets to PDF
    • Assets and Media
      • Using the File Upload Web Control
      • Working with Files and Media
      • Assets and Data Operations
      • Sending Assets to Remote Servers
    • Styling Overview
      • Web Control Styling Properties
        • Animations
      • Themes and Control Variants
        • Importing and Exporting Themes
      • Working with Custom Assets
      • Page Layouts
        • Creating an App Header
    • Publishing
      • Publish and Manage Deployments
      • Configure Application Resources
      • Editing an Application
      • Importing/Exporting Apps
      • Tying Variables to Deployments
    • Advanced
      • Custom Controls
      • Creating Custom Functions
    • Accessibility
      • Accessibility in Airkit
      • Connecting Labels to Input Controls
  • Authentication
    • SAML Authentication
    • OAuth 2.0 - Google
    • OAuth 2.0 - Okta
    • OAuth 2.0 - Auth0
    • Azure AD B2C
    • Authentication Apps and Secure Apps
  • Embeds
    • SDK Overview
      • SDK Quickstart
      • SDK Authentication
      • Passing Data
      • Configuration
      • Configuration Examples
      • Airkit Lightning Component (Salesforce)
  • Analytics and Administration
    • Airkit Organizations
    • Adding Users to Airkit
    • User Roles
      • Working with Custom Roles
    • JIT Provisioning for an Organization
    • SAML SSO for an Organization
    • Managing the Application Lifecycle
    • Environments
      • Environmental Governance
    • Getting Application Metadata
    • Custom Domains
    • Analytics Overview
      • App Events to Splunk
      • App Events to AWS S3 Buckets
      • Audit Logs to AWS S3 Buckets
      • View Data in Activity Explorer
      • Snowflake Analytics Schema
      • Power BI
      • Heap and GTM Integrations
        • Setting up Analytics with GTM
        • Setting up Analytics with Heap
    • Error Management
      • Logging Errors
      • Setting up Email Notifiers
      • Integrating Error Notifiers to Slack
  • Security and Compliance
    • App Security FAQ
    • Data Masking and Auditing
    • IP Ranges
    • Encrypting Data
    • SSL Auth
    • TCPA
    • Cookie Policies
    • Supported Browsers
    • Realms
  • Reference Docs
    • Reference Documentation Overview
    • Airscript
      • Text Functions
        • CAPITALIZE
        • CONCAT
        • ISSTRING
        • LOWERCASE
        • PADSTRING
        • REPLACE
        • REPT
        • SPLIT
        • STRING_COMPARE
        • STRING_FIND
        • STRIP
        • SUBSTITUTE
        • SUBSTRING
        • TITLECASE
        • TRIM
        • UPPERCASE
      • DateTime Functions
        • ADD_TO_DATE
        • ADD_TO_DATETIME
        • DATE
        • DATETIME
        • DATETIME_DELTA
        • DATETIME_FROM_FORMAT
        • DATETIME_FROM_TIMESTAMP
        • DATE_DELTA
        • DATE_FROM_DATETIME
        • DATE_FROM_FORMAT
        • DAY
        • DAYS
        • FORMAT_DATE
        • FORMAT_DATETIME
        • FORMAT_TIME
        • HOUR
        • ISO_WEEK
        • MINUTE
        • MONTH
        • NOW
        • SECOND
        • SUBTRACT_FROM_DATE
        • SUBTRACT_FROM_DATETIME
        • TIME
        • TIMESTAMP_FROM_DATETIME
        • TIME_DELTA
        • TIME_FROM_DATETIME
        • TIME_FROM_FORMAT
        • TODAY
        • UPDATE_DATE
        • UPDATE_DATETIME
        • UPDATE_DAY
        • UPDATE_HOUR
        • UPDATE_MILLISECOND
        • UPDATE_MINUTE
        • UPDATE_MONTH
        • UPDATE_SECOND
        • UPDATE_TIME
        • UPDATE_TIMEZONE
        • UPDATE_YEAR
        • WEEK
        • WEEKDAY
        • YEAR
      • List Functions
        • CONTAINS
        • FIRST
        • FLAT
        • JOIN
        • LAST
        • LENGTH
        • REMOVE_EMPTY
        • REVERSE
        • SHUFFLE
      • Object Functions
        • KEYS
        • MERGE_OBJECTS
        • OBJECT_TO_SOAP
        • OBJECT_TO_XML
        • SOAP_TO_OBJECT
        • SOAP_HEADER_TO_OBJECT
        • VALUES
        • XML_TO_OBJECT
      • Math Functions
        • ABS
        • ACOS
        • ACOSH
        • ACOT
        • ACOTH
        • ASIN
        • ASINH
        • ATAN
        • ATAN2
        • ATANH
        • CEILING
        • COMBIN
        • COMBINA
        • COS
        • COSH
        • COT
        • COTH
        • CSC
        • CSCH
        • DEGREES
        • EVEN
        • EXP
        • FACT
        • FACTDOUBLE
        • FLOOR
        • GCD
        • ISEVEN
        • ISNUMBER
        • ISODD
        • LATLNGDISTANCE
        • LCM
        • LN
        • LOG
        • MAX
        • MIN
        • MROUND
        • MULTINOMIAL
        • ODD
        • PI
        • POWER
        • PRODUCT
        • RADIANS
        • RANDOM
        • RANGE
        • ROUND
        • ROUNDDOWN
        • ROUNDUP
        • SEC
        • SECH
        • SIGN
        • SIN
        • SINH
        • SQRT
        • SQRTPI
        • SUM
        • SUMSQ
        • TAN
        • TANH
        • TRUNC
      • Conditional Functions
        • EQUAL
        • IF
        • ISEMPTY
        • ISNOTEMPTY
        • NOT
      • Currency Functions
        • CURRENCY
        • FORMAT_CURRENCY
        • PARSE_CURRENCY
      • Phone Functions
        • FORMAT_PHONE
        • ISPHONE
        • PARSE_PHONE
      • Email Functions
        • ISEMAIL
      • Number Formatting Functions
        • ARABIC
        • FORMAT_NUMBER
        • PARSE_NUMBER
        • ROMAN
      • Data Type Functions
        • FROM_JSON
        • TO_JSON
        • TYPEOF
      • Asset Functions
        • ASSET_SIZE
        • ASSET_STATE
        • ASSET_THUMBNAIL_URL
        • ASSET_TO_URI
        • ASSET_TYPE
        • URI_TO_ASSET
      • Encoding Functions
        • BASE
        • BASE64_DECODE
        • BASE64_ENCODE
        • HMAC_MD5
        • HMAC_SHA1
        • HMAC_SHA256
        • MD5
        • SHA1
        • SHA256
        • URL_DECODE
        • URL_ENCODE
        • UUID
        • VALUE_OF
      • Error Handling Functions
        • THROW
        • TRY
      • Form and Validation Functions
        • FIRST_VALIDATION
        • RUN_VALIDATIONS
      • Arithmetic Operators
        • Addition (+)
        • Subtraction (-)
        • Multiplication (*)
        • Division (/)
        • Remainder (%)
      • Comparison Operators
        • Equality (=)
        • Inequality (<>, !=)
        • Ordering (<, <=, > , >=)
      • Logical Operators
        • AND
        • OR
        • XOR
        • Null Coalescing Operator (??)
      • Advanced Expressions
        • LET...IN
        • User Defined Functions
    • Web Controls
      • Button
      • Checkbox
      • Chat
      • Simple Checkbox List
      • Container
      • Container List
      • Credit Card
      • Currency Input
      • Date Input
      • Date Picker
      • Dropdown List
      • Email Input
      • Embedded External Content (iFrame)
      • Fieldset Container
      • File Upload
      • Form
      • Hyperlink
      • Image
      • Inline Container
      • Label
      • Map
      • Markdown
      • Number Input
      • Payment Request Button
      • Phone Input
      • Place Search Input
      • Progress Bar
      • QR Code
      • Radio Button
      • Simple Radio List
      • Scheduler
      • Secure String Input
      • Selectable Container
      • Signature Input
      • Text Area
      • Text Input
      • Time Input
      • Web Flow
      • Web Page
    • Voice and Chat Controls
      • Decision Menu
      • Forward Call
      • Secure Touchtone Capture
      • Text Response Capture
      • Touchtone Capture
    • Data Operations
      • AirData Request
        • DELETE
        • PUT
        • INSERT
        • PATCH
        • QUERY
        • DEPRECATED_QUERY
      • Calendar Search
      • Close Conversation
      • Conversation Transcript
      • Create File
      • Delete Assets
      • Download Encoded Asset
      • Early Return
      • Fetch Agent Information
      • Fetch Asset Details
      • Fetch Routing Flow Stats
      • Find Conversations by Customer Identifier
      • Fill PDF Form
      • Google
      • HTML to PDF
      • HTTP Request
        • Using an API With Paging
      • JWT Generation
      • Merge PDF
      • Move Conversation to Routing Flow
      • Opt Out Search
      • Opt Out List
      • Run Data Flow
      • Run Event in Journey
      • Salesforce
      • Secure Value Retrieval
      • Send Email
      • Send Message to Conversation
      • SFTP
      • Start Journey
      • Swagger Schema Validation
      • Transform
      • Update Customer Identifier
      • Wait
      • XML to JSON
      • Zendesk
      • ZIP File
    • Actions
      • Analytics Identify
      • Analytics Send Event
      • Close Modal
      • Condition
      • End Session
      • Extend Session Expiration Time
      • Initialize Actor
      • Log Custom Event
      • Metric: Count
      • Metric: Field
      • Metric: Start Timer
      • Metric: Statistic
      • Metric: Stop Timer
      • Navigate To Web Flow
      • Navigate to Web Page
      • Open Modal
      • Run Data Flow
      • Run Data Flow Repeatedly
      • Run Embedded Outgoing Event
      • Run Event
      • Send Email
      • Send SMS
      • Set Authentication
      • Set Identifier
      • Set Variable
      • Start Chat Bot
      • Start Voice Bot
      • Start Timer
      • Stop Timer
      • Throw
      • Trigger Form Validation
      • Try
    • Conversation Actions
      • Ask A Question
      • Capture User Response
      • Close Conversation
      • Move Customer to Resource
      • Move Conversation to Routing Flow
      • Quick Replies
      • Run Answer Flow
      • Start Conversation Chat Bot
      • Start Conversation
      • Send Link
      • Text Answer
      • Update Customer Identifier
    • Primitive Data Types
      • Any (JSON)
      • Asset
        • Detailed Asset
      • Boolean
      • Currency
      • Date
      • DateTime
      • Email
      • List
      • Null
      • Number
      • Phone
      • Text
      • Time
  • Transportation Products Catalog
    • The Transportation Products API
      • GET products
      • GET product-by-id
  • Release Notes
    • CXR Overview
    • CXR Upgrades and Migrations
Powered by GitBook
On this page
  • Configuring Resources, Data, and Notifications
  • Configuration in the Studio
  • Configuration as part of publishing process
  • Publishing
  • Publishing Flow
  • Managing Deployments and Branches
  • Deleting a Deployment

Was this helpful?

  1. Web Apps
  2. Publishing

Publish and Manage Deployments

PreviousPublishingNextConfigure Application Resources

Last updated 1 year ago

Was this helpful?

Airkit apps come configured with three deployment environments:

  • Development

  • QA

  • Production

Whenever an app is published, it must be published to one of these three environments, each of which can be associated with its own data, resources, and integrations. For example, an app deployed in the Development environment should be tied to integrations and data sources that have sample data, where an app deployed in the Production environment should be tied to the production data source.

Typically, an application is published in the Development environment while it is still being built, the QA environment when it is being tested, and the Production environment when it is finalized and ready to present to the end users. Best practice dictates that any changes or fixes made to the application should pass through a similar lifecycle before being merged with the app in Production:

To facilitate this lifecycle, Airkit provides a publishing process that:

  • allows an application to be published in multiple environments at once, though publishing to the same environment multiple times will overwrite the previous deployment with the most recent.

  • allows each deployment environment to tied to different resources, including but not limited to:

Configuring Resources, Data, and Notifications

There is one exception: configuring how notifications will be sent in the case of errors. This is always configured as part of the publishing flow.

Configuration in the Studio

While in the Studio, it is possible to toggle between different environments via the dropdown to the immediate right of the application name:

Configuration as part of publishing process

Part of the process of publishing an application includes a review of the connections, changes, and migrations that need to be confirmed before the application can be published. The interface looks as follows:

There are three items on the Publish checklist: Configuration Mappings, Datastore Migration, and Notifications & Logs. You can toggle between them via the list on the left side of the interface. Any errors interfering with publication will be explicitly flagged. However, even when there are no obvious technical errors (as in the example show above) it is still good practice to look through each item and confirm that the configuration is not only technically viable but also correct for the present deployment.

Configuration Mappings

The Configurations Mappings interface lists key resources required for deployment, including, as relevant, the Base Domain, the Web Launch URL, the Datastore, the SMS Resource, and the Voice Resource:

Not every application will display all these resources. An application that neither sends nor parses phone calls will not, for example, require a Voice Resource, and thus it will not display one.

Datastore Migration

Notifications and Logs

Publishing

Publishing an app makes it live and accessible to the outside world through the configured resources. Publishing an app also locks down a version of the app so that additional changes to the app won’t affect the current users.

You can publish an application through either the Studio or the Console.

To publish an application from the Studio, click on the Publish button in the upper right:

Likewise, you can click on the "..." icon to the far right of the application and select Publish App from the dropdown menu that appears:

In all three cases, this will open the publishing flow in a pop-up window.

Publishing Flow

When the publishing flow opens in the pop-up window, it will first ask you to prepare your deployment for deployment:

The Source defines which branch of the application will be used for deployment. When publishing from the Studio, this will not be editable: you can only publish the branch you are currently editing. When publishing from the Console, you can select the branch you want to use from the dropdown menu under Source.

The Destination defines what environment you will be publishing the application in. The dropdown menu allows you to select one of the three environments: Development, QA, or Production.

📘 Only one deployment can be published in each environment at a time. While it is possible for an application to be published in multiple environments at the same time, only one deployment can be published in each environment. For instance, if you have already published an application to the Development environment, doing so again will overwrite the initial deployment. Existing Journeys will continue through the deployment that was published when they started, but any new Journeys started will be started in the most recent deployment.

Once your Source and Destination have been defined, click on the Prepare button to the lower right. This will take you to a review of the connections, changes, and migrations that need to occur in order for your application to be successfully published:

Once you have confirmed that all the configurations here are correct, click on the Publish App button to the lower right. This will publish your application. Upon success, you will see the following interface, which includes a summary of the resources that can be used to launch a new Journey in your application:

Managing Deployments and Branches

Selecting Manage Branches will take you to an interface that displays all Branches of the application. Under the Deployments column, you can see which Branches are currently deployed, and in how many environments.

Selecting Deployments will take you to an interface that displays all currently published deployments. At any given time, there can be a maximum of three: one for each deployment environment.

Clicking on a Development opens it in the Inspector, where you can view details of the Deployment, including the Branch the Deployment came from, the resources the Deployment is tied to, and how error Notifications have been configured:

Deleting a Deployment

To delete a Deployment, on the relevant Deployment to open it in the Inspector, and then press the Delete button to the bottom left:

This will not delete the Branch that this Deployment was made from, but it will un-publish the Deployment, forcibly ending all Journeys within it and preventing any new Journeys from starting.

In order to delete an application from an Org, it can have no live Deployments.

For more on the application lifecycle, see .

The resources tied to a deployment environment are configured in Studio, under . Similarly, are configured in the Studio, under . The publishing process also allows key resources to be confirmed or reconfigured, although not all resources can be modified in this way. Configuring resources as part of publishing should only be done sparingly, as part of the confirmation process.

The environment selected here is the one that will be associated with the resources configured in Settings. For more on how to configure these resources, see .

Selecting an environment here also impacts which the application will access if and when interacting with . For more on how to configure Datastores, see .

If, upon reviewing the Configuration Mappings, you encounter a value that looks incorrectly configured, you can selected a new Value from Profile from the dropdown menu that appears to the right of the relevant resource. The options available for selection will have been previously configured in the ; see for a more detailed overview of how various resources can be made available.

The Datastore Migration Interface summarizes any changes that will be made to the relevant . If publishing will make any major changes to the way data was structured in a previous deployment to that environment, you will need to confirm that these changes were deliberate and that you understand the risks of making them:

This will typically only be relevant when your application works with , but in such cases, it is extremely important. If you are changing the structure of AirData App Objects from what they were during earlier deployments in this environment, you can loose important saved data. For instance, deleting an object property and replacing it with an analogous one (such as in the above example), will not transfer any saved data from the old property to the new: all saved data will be deleted.

Notifications can be configured to send alerts when an application throws an error. There are two error types: Application Errors, which occur whenever an error is thrown as part of a Journey, and Custom Log Event Errors which are built into the Journey as Actions. (For more on the different kinds of errors, see .) To select a notifier to tie with either such error, select a notifier from the dropdown menu to the left of each Notification Event:

The notifiers available for selection have been previously configured in the Console, in the Logs & App Notifiers section in the Tab. For examples of how to configure notifiers in the Console, see or .

To publish an application from the Console, navigate to the Tab, Inspect the relevant application, and select Publish App from the Inspector:

The Deployments and Branches of an application are managed in the , under the Tab. To manage either, click on the '...' icon to the far right of the relevant app, and select either Manage Branches or Deployments from the dropdown menu that appears:

Clicking on a Branch opens it in the Inspector. Here, you'll have the option of opening earlier Branches in the Studio for examination or downloading a .zip file of the branch, which you can edit as a separate application after it into the Console:

Deleting a Deployment is part of managing Deployments. It is done , under the Tab. To manage Deployments, click on the '...' icon to the far right of the relevant app, and select Deployments.

Managing the Application Lifecycle
Base Domains
Phone Numbers
APIs
Datastores
Email Addresses
Settings
Datastores
AirData Builder
Configure Application Resources
Datastores
AirData
Datastores
Console
Configure Application Resources
Datastores
AirData App Objects
Logging Errors
Settings
Setting up Email Notifiers
Integrating Error Notifiers to Slack
Apps
Console
Apps
importing
Console
Apps