The online code editor is the interface for setting the main business logic for your workflows. Everything written in the editor will be interpreted as a contiguous Python script. Unlike a standard Python script, you do not need a Main function. Strada currently only supports Python 3.9+ runtime.

Running code

To run your code, press the ▶️ Run. Running code within the editor does not cost you or contribute to your workflow run quota. The same button can also be used to stop your code mid-execution.

Using actions

Actions configured can be referenced anywhere in the code, by invoking the ActionName.execute() method.

Passing parameters in .execute()

You’ll often be setting custom parameters within your Action, such as passing in the message text for a Slack message. Parameters can be provided as keyword arguments (**kwargs) within the execute method

For example, for a workflow with a Send Message Slack action called SendMsg, with a custom parameter called message, the .execute() method can be called as follows:

SendMsg.execute(message="Message sent to Slack channel")
Strada parameters are defined as keyword arguments (**kwargs) and not arguments (*args). Therefore, specifyingActionName.execute(param="Value") is valid, but specifying ActionName.execute("Value") is not.

Action responses

All Strada actions have the following Pydantic model as a response:

class StradaResponse(BaseModel):
    error: Optional[StradaError] = None
    success: bool
    data: Optional[Any] = None

The data attribute will have a different model based on the app (i.e. Slack, Jira) and action (i.e. send message, create ticket). You can view the exact documentation for the schema responses for all apps and actions in Integrations.

All responses are subscriptable, meaning you can access any value using the following two ways:

r = SendMessage.execute(message="Hello, world!")

if (r.success == True):
  print("Hoorah!")

OR

r = SendMessage.execute(message="Hello, world!")

if (r['success'] == True):
  print("Hoorah!")

Using packages

To import any package simply add the import XXX statement in the editor. The dependencies will be installed and made available for your use. For example:

import datetime
Unnecessary imports can impact performance. Only import what is necessary.

Console

At the bottom of the code editor you’ll find your console which has a Logs tab. Here you will see any output from a print statement, errors/warnings, and all Strada actions automatically logged for you. All logs are interactive and can be collapsed if they exceed 1 line of text.

Strada action logs

Strada actions automatically log the input and output data of each action that was executed, along with a success or error status for each, and duration. It makes it easy to visually debug and explore the data in your workflow. Inputs and outputs are shown as JSON.

You can hover and click on any element within the JSON to get the path, which can be used to access the value of the response.