LogoLogo
Changelog
18.1
18.1
  • Welcome
    • Welcome to Airkit 👋
    • Quickstart
    • Flight School & Certification
  • Tutorials
    • Building A Contact Form
      • Building the Web UI
      • Building the Database
      • Finalizing the App
      • Connecting to Salesforce (Advanced)
      • Appendix
      • FAQ
    • Styles, Themes, and Templates
      • Changing the header
      • Changing the Theme
      • Using a custom font
      • Using Animations
      • FAQ
      • Appendix
    • 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
      • Finalizing all Journey Steps
      • Appendix
      • FAQ
    • Custom Integrations (Petfinder App)
      • Querying the Petfinder API
      • Displaying Petfinder Data
      • Appendix
  • Concepts
    • Journeys
      • Linking to Journeys
    • Actors
      • Conversations with Actors
  • Console
    • Console
      • Apps
      • Activity
      • App Health
      • Datastores
      • Integrations
      • Resources
      • API
      • Settings
  • Studio
    • Studio
    • Builder Bar
      • Journey Builder
      • Triggers Builder
      • Web Flows Builder
      • Chat Bots Builder
      • Voice Bots Builder
      • Connections Builder
      • Notifications Builder
      • AirData Builder
      • Media Library
      • Theme Builder
      • Schedules Builder
      • Settings
    • App Preview
    • Action Builder
    • Web Flows
    • Data Flows
    • Variable Tree
    • Events
      • Session Started Events
      • Trigger Events
      • Control Events
      • Session Events
      • Activity Group Events
  • Data and Integrations
    • Variable Namespaces
    • Storing and Accessing Data
    • AirData
      • AirData App Objects
      • Identity Objects
      • Place Objects
      • Schedule Objects
      • Datastores
      • AirData Querying Capabilities
    • Standard Journey Data
    • Integrations and APIs
      • Setting up Integrations
      • Adding and Modifying Resources
      • Querying and Manipulating Data
      • Subscriptions (Web Hooks)
      • App APIs
  • SMS
    • Overview
    • SMS Notification Basics
    • Chat Bot Basics
    • Texting Journey Links
    • Data from Inbound Calls/SMS
    • Connecting Twilio Numbers
  • Emails
    • Overview
    • Email Notification Basics
    • Sending Emails by Data Operation
    • Connecting Email Addresses
  • Building Apps
    • Forms
      • Displaying Controls Dynamically
      • Repeating Elements
      • Prefilling Forms
      • Validation of User Data
      • Capture Secure User Data
      • Progress Bars
      • Dropdown Menus
      • Electronic Signatures
    • Voice Bots
      • Voice Bot Basics
    • Integration Guides
      • Building an App API
      • Creating SFTP Credentials
      • Swagger Schema Validation
      • Create A Salesforce Lead
      • Create a Zendesk Ticket
    • 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
    • Assets and Media
      • Using the File Upload Web Control
      • Working with Files and Media
      • Assets and Data Operations
      • Sending Assets to Remote Servers
    • Publishing
      • Publishing Your Application
      • Editing an Application
      • Importing/Exporting Apps
      • Profiles and Deployment Settings
      • Tying Variables to Deployments
    • Advanced
      • Custom Controls
      • Creating Custom Functions
    • Accessibility
      • Accessibility in Airkit
  • Authentication
    • SAML Authentication
    • OAuth 2.0 - Google
    • OAuth 2.0 - Okta
    • OAuth 2.0 - Auth0
    • Azure AD B2C
    • Authentication Apps and Secure Apps
  • Embeds
    • Overview
    • SDKs
      • SDK Quickstart
      • Requiring Authentication
      • Passing Data
      • Configuration
      • Configuration Examples
    • Airkit Lightning Component (Salesforce)
    • Embeds
      • Embedding Apps on Websites
      • AirClient Configurable Properties
      • Creating Secure Embeds
  • Airscript
    • Airscript Quickstart
    • Airscript Examples
    • Working with Text
    • Working with Numbers and Currency
    • Working with Dates and Times
      • Date and Time Formatting Options
      • Time Unit Values
      • Supported Time Zones
    • Working with Email and Phone
    • Working with Missing Values
    • Working with URLs and Base64
    • Querying Lists and Objects
    • Filtering Data using Query Expression
  • Styling
    • Themes and Control Variants
    • Importing and Exporting Themes
    • Working with Custom Fonts
    • Creating an App Header
    • Page Layouts
    • Animations
  • Analytics
    • 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
  • Administration
    • Custom Domains
    • SAML SSO for an Organization
    • User Roles
      • Working with Custom Roles
    • Adding Users to Airkit
    • Airkit Organizations
    • Environments
      • Environmental Governance
    • Managing the Application Lifecycle
    • Getting Application Metadata
  • error-management
    • Logging Custom Event Errors
    • Integrating Error Notifications to Slack
  • Security and Compliance
    • App Security FAQ
    • IP Ranges
    • Encrypting Data
    • SSL Auth
    • TCPA
    • Cookie Policies
    • Supported Browsers
    • Realms
  • Airscript Expressions
    • 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
      • SHUFFLE
    • Object Functions
      • KEYS
      • VALUES
      • MERGE_OBJECTS
    • 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
    • Arithmetic Operators
      • Addition (+)
      • Subtraction (-)
      • Multiplication (*)
      • Division (/)
      • Remainder (%)
    • Comparison Operators
      • Equality (=)
      • Inequality (<>, !=)
      • Ordering (<, <=, > , >=)
    • Advanced Expressions
      • User Defined Functions
      • LET...IN
  • Web Controls
    • Web Controls Overview
      • Common Style Properties of Web Controls
    • Button
    • Checkbox
    • Checkbox List
    • Container
    • Container List
    • Credit Card
    • Currency Input
    • Date Input
    • Date Picker
    • Dropdown List
    • Email Input
    • Embedded External Content (Container)
    • File Upload
    • Hyperlink
    • Image
    • Label
    • Map
    • Number Input
    • Payment Request Button
    • Phone Input
    • Place Search Input
    • Progress Bar
    • Radio Button
    • Radio Button List
    • Scheduler
    • Secure String Input
    • Selectable Container
    • Signature Input
    • Text Area
    • Text Input
    • Time Input
    • Web Flow
    • Web Page
    • QR Code
  • Voice and Chat Controls
    • Dialogue Controls Overview
    • Decision Menu
    • Forward Call
    • Secure Touchtone Capture
    • Text Response Capture
    • Touchtone Capture
  • data-operations
    • Data Operation Overview
    • AirData Request
      • DELETE
      • PUT
      • INSERT
      • PATCH
      • QUERY
      • DEPRECATED_QUERY
    • Calendar Search
    • Create File
    • Delete Assets
    • Download Encoded Asset
    • Early Return
    • Fetch Asset Details
    • Fill PDF Form
    • Google
    • HTML to PDF
    • HTTP Request
      • Using an API With Paging
    • JWT Generation
    • Merge PDF
    • Run Data Flow
    • Run Event in Journey
    • Salesforce
    • Secure Value Retrieval
    • Send Email
    • SFTP
    • Start Journey
    • Swagger Schema Validation
    • Transform
    • Wait
    • XML to JSON
    • Zendesk
    • ZIP File
  • Actions
    • Analytics Identify
    • Analytics Send Event
    • Close Modal
    • Condition
    • End Session
    • Extend Session Expiration Time
    • Go to Next Journey Step
    • 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
  • Variable Data Types
    • Data Types Overview
    • Any (JSON)
    • Asset
      • Detailed Asset
    • Boolean
    • Currency
    • Date
    • DateTime
    • Email
    • List
    • Null
    • Number
    • Phone
    • Text
    • Time
    • Custom Data Types
  • Integrations
    • Custom Integrations
    • Genesys Widget Integration
    • Zendesk Integration
    • Salesforce Integration
    • Plaid Integration
    • Twilio Integration
    • Stripe Integration
    • Shopify Integration
    • Airtable Integration
    • Google Integration
    • SFTP Integration
  • Product Versions
    • CXR Overview
    • CXR Upgrades and Migrations
  • Quickstart Sample API
    • The Transportation Products API
    • GET products
    • GET product-by-id
Powered by GitBook
On this page

Was this helpful?

  1. Airscript Expressions
  2. Text Functions

SPLIT

The function SPLIT takes two strings, base_string and separator, and returns a list of strings in which each item is a fragment of the string making up base_string, cleaved at instances where separator appeared.

This function takes two strings as input: the first is the base string, and the second is the separator. It then splits the base string at each instance where the separator appears and outputs the result as a list of strings. This list will not include the separator within any of the strings that make up its items.

Declaration

SPLIT(base_string, separator) -> list_of_strings

Parameters

base_string (required, type: string) The string to split.

separator (required, type: string) The string that designates which subcomponents within the string base_string will be cleaved, leaving the remaining string fragments to be outputted as items in a list.

Return Values

list_of_strings (type: list) The list of strings remaining after taking the base string and cleaving it at instances where the separator string appeared.

Examples

The following example takes the string "This is the string to split", splits it at each instance of a space (" "), and outputs the resulting fragments as strings in list. Note that none of the strings in this list contain any spaces.

SPLIT("This is the string to split", " ") -> ["This", "is", "the", "string", "to", "split"]

One notable feature of the SPLIT function is how it behaves if the base string and the separator are the same string. The following example takes the string "This is the string to split" and splits it at each instance of "This is the string to split" – the entire base string. Removing the entire base string leaves only blanks at what was the beginning and end of the string, and this results in a list with two items, both of them blank strings:

SPLIT("This is the string to split", "This is the string to split") -> ["", ""]

The next example demonstrates what happens if the separator is longer than the base string. It takes the string "This is the string to split" and attempts to split it at each instance of "This is the string to split and more". There is no way for such instance to exist when the separator is longer than the base string, and so the output is a list with only a single item, the complete base string:

SPLIT("This is the string to split", "This is the string to split and more") -> ["This is the string to split"]

In the above example, the output is a list containing only a single item: the base string in its entirety. This is the output SPLIT will return any time there are no instances of the separator within the base string. The same thing happens when following example takes the string "This is the string to split" and attempts to split it at each instance of "coconuts". Nowhere in "This is the string to split" does the string "coconuts" appear, so the output is again a list containing only the full base string:

SPLIT("This is the string to split", "coconuts") -> ["This is the string to split"]

A separator is required in order for the SPLIT function to run, but the string that makes up the separator does not need to contain any characters. The following example takes the string "This is a string" and separates it at each instance of "", which occurs between each character in the base string:

SPLIT("This is a string", "") -> ["T", "h", "i", "s", " ", "i", "s", " ", "a", " ", "s", "t", "r", "i", "n", "g" ]

The input that goes into the SPLIT function doesn't need to be hardcoded. Assume the last example has access to the following variables:

long_string = "We want to split this long string in sort of a strange way."  
short_string = "t t"

The following example takes the string value of long_string, splits it at each instance of short_string, and outputs the resulting fragments as strings in list.

SPLIT(long_string, short_string) -> ["We wan", "o spli", "his long string in sort of a strange way."]

Discussion

As a rule of thumb, when you call on the SPLIT function, you most likely want to input a separator that is shorter than the base_string, though, as demonstrated above, this is not technically a requirement. If you input a separator that is longer than base_string, you will get valid output: a list containing a single item: base_string, entirely unmodified. While this may be unavoidable if looping through several variables as input, if the goal is only to put base_string into a list, a list literal is a more efficient way to do so. That is, creating a list literal [base_string] will have the same effect and take less computing time.

JOIN(SPLIT(big_string, little_string), little_string) -> big_string

In other words, SPLIT takes a string with (potential) instances of a separator between them, cleaves the separator, and returns the remaining, separated strings as a list, while JOIN takes a list of strings and combines them into a single string with a separator string marking where each combination occurred.

To walk through this step by step, consider the following example, where big_string is "This is a string" and little_string is " ":

JOIN(SPLIT("This is a string", " "), " ")

The inner function, SPLIT, takes the string "This is a string," cleaves out the spaces, and outputs the remaining fragments as strings in a list:

(SPLIT("This is a string", " ") - ["This," "is", "a", "string"]

The outer function then takes the output of this inner function and combines all the strings in the list, a space now between each of them – " " being the string we just cleaved from the original, longer string – into a single string. Because the same string (" ") was used as the second input value for both functions, the output matches the original input list exactly. In other words, JOIN reinserted the spaces that SPLIT just removed:

JOIN(["This," "is", "a", "string"], " ") -> "This is a string"
PreviousREPTNextSTRING_COMPARE

Last updated 1 year ago

Was this helpful?

SPLIT can be thought of as the opposite of the function. That is, for any two strings, let's call them big_string and little_string, you can use JOIN to undo what SPLIT did, like so:

JOIN