Skip to main content
All CollectionsGetting Started with Summit
Summit Event Language (SEL) Functions: Quick Reference
Summit Event Language (SEL) Functions: Quick Reference

One-stop-shop for a list of all event types with brief descriptions and examples.

Updated over 3 months ago

Below is a list of the current SEL functions you can use to populate building blocks and build models. The quick reference below includes a brief explanation of each function and its basic behavior. The functions also include links to our Technical Reference Guide with detailed descriptions and additional guidance about how each function can best be used to power your workflows.

If you have any questions or have a suggestion for a new SEL Function, please feel free to contact us at [email protected] or schedule a time to meet with a member of our team.


Requests & Response

Events to fetch, parse, and return data.

Type

Behavior

Input

Output

Example(s)

Make a GET or POST request for JSON, HTML, or CSV data.

Object to define headers, params, json, cookies, or data.

Web request response contents, HTML, CSV, JSON.

=Request('get', 'https://api.example.com/x.json')

Use your authenticated connection to a remote service to make a request.

Object to define headers, params, json, cookies, or data.

Authenticated request to retrieve content (usually JSON) from a remote service.

=Proxy('hubspot', ['PATCH', '/v3/crm/objects/companies/12345678'])

Use a JSONPath expression to parse the output of a Request.

JSON, typically returned from a Request.

A list of matches.

=Parser('$..coordinates.lat')

Compose the data field of your model's API response.

Numbers, strings, text, or JSON.

None

=Response("foo.bar"),
=Response("myDataList[]")

Create an in-memory table for querying.

Remote CSV data or a list of dictionaries.

A table reference for use by Query events.

=Table("https://sheets.google.com/my.csv") or =Table("contacts")

Perform a SQL query on a Table

A Table reference.

A list of dictionaries representing the result set.

=Query("SELECT * FROM $table WHERE name = 'John Doe'") or =Query("SELECT * FROM contacts WHERE age = 44")

Objects & Arrays

Events to store and send fixed lists or object definitions.

Type

Behavior

Input

Output

Example(s)

Defines a static list to relay to another event.

None, statically defined.

The entire array as a list.

=Array(['peanut butter', 'jelly', 5])

Defines a literal object using JSON syntax.

None, statically defined. You may use liquid syntax within string components of the definition.

The object as a dictionary.

=Object({"warm": true})

Strings & Text

Events to store or create text.

Type

Behavior

Input

Output

Example(s)

Stores and relays a text string.

-

The string.

=String("Jedi Council")

Finds all values that match a provided regular expression.

A list, a string, or text.

A list of matches found within the input.

=Matches("\d{1,}")

Write and create long strings of text using liquid syntax.

-

The text as a string.

=Text(""" I am Ishmael. """)

Iterators

When you need to cycle through a list.

Type

Behavior

Input

Output

Example(s)

Takes values in the provided order and sends them downstream.

A list of values.

The provided values in order.

=Loop([1, 4, 3])

Generators

Events that produce numeric or text values when executed.

Type

Behavior

Input

Output

Example(s)

Sends prompt to an AI Model, returns a JSON object with the model response.

An Object defining a prompt

The content of the model response as JSON object.

=Ai("gpt-4o", "{{ OPENAI_KEY}}")

Calls Tavily's Search API and serves up the results as an object.

Search term, phrase, or question.

Search result with up to 5 sources cited.

=Search("When will Mariah Carey want us to start playing Christmas music this year?")

Generates a stream of numeric values.

Number

A stream of numeric values.

=Source(100k)
=Source(100k @ 3%)
=Source(100k...110k @ 3%)

Generates numeric values based on a specified curve shape.

-

A stream of numeric values.

=Curve('s', [365, 1k])

From a list of numeric values, generates a trended series of values.

-

A stream of numeric values.

=Trend([12.1k,15.5k,13.6k,14.4k])
=Trend([100,300,200,225])

Extends a list of numeric values using the slope between the last two values of the provided input.

-

A stream of numeric values.

=Extend([1,2,3,10])

Containers

Events that store numeric value.

Type

Behavior

Example(s)

Collects numeric values with no limit.

=Pool(1.4m)
=Pool(1.4m @ 1%)

Relays numeric values downstream.

=Pipe(0)
=Pipe(0, 100)

Collects numeric values up to a specified limit; overflow passes downstream.

=Bucket(0, 500)

Collects numeric values up to a limit; empties when limit is reached.

=Tippingbucket(0, 500)

Releases a specified amount of numeric value from its store each time it is triggered.

=Funnel(100k, 200)

Opens on a schedule, releasing all of the numeric value it has collected. Any value not sent downstream is retained.

=Gate(0)

Stores numeric value in a container; container has a minimum and maximum size. Excess value and overdraws are passed downstream.

=Silo(100, [-50, 1k])
=Silo(100, [-100,])

Stores numeric value in a rotating list that follows a calendar.

=Wheel(12)
=Wheel(4, [250, 200, 175, 99])

Stores numeric values in a list; sends the sum of those values to downstream events. Second argument specifies retention by cohort.

=Base([] @ [95, 65, 54, 32, 23]%)

Code

Events to run code!

Type

Behavior

Run code and print the return value.

Timers

Events to manage time for simulation models.

Type

Behavior

Example(s)

Insert a delay.

=Wait(7, 'days')
=Wait(3, 'months')

Close off the flow of values for a certain amount of time.

=Block(3, 'months')
=Block(1, 'year')
=Block(14, 'days')

Stop the simulation.

=Halt()

Stops the simulation after a specified amount of time.

=Stopwatch(3600\<elapsed_time_allowed>)

Transforms

Events to alter a value.

Type

Behavior

Example(s)

Modify the value (or list of values) received before relaying it downstream.

=T('max')
=T('numbers')
=T('abs')
=T('round')

=T('liters', 'gallons')
=T('yards', 'meters')
=T('kilometers', 'miles')

Conditionals

Events to test values.

Event

Behavior

Example(s)

Test a value and relay it if True.

=If('>', 0)
=If('gte', 5)

Test a value and relay it if True, but only once. False on all subsequent calls.

=Once('>', 100k)

Triggers

Events to control the simulated timing of other events.

Event

Behavior

Example(s)

Cause downstream events to execute on a specific schedule within a simulation model.

=Every("0 8,17 * * 1-5"<hours_of_operation>, 'America/Chicago'<timezone>)

Tiering & Scale

Events to split values into arrays to perform matrix multiplication.

Event

Behavior

Example(s)

Define a set of tiers and identify which tier an inputted number belongs to.

=Tiering([5, 10, 20])

Define breakpoints; given a value, split it into those breakpoints.

=Scale([150, 250, 500])


Did this answer your question?