Automations
Trigger workflow jobs automatically in response to external events such as schedules or file changes, enabling near-real-time data processing pipelines.
Introduction
Tilebox Workflows can execute jobs in two ways: a one-time execution triggered by a user, typically a batch processing, and near-real-time execution based on specific external events. By defining trigger conditions, you can automatically submit jobs based on external events.
Tilebox Workflows currently supports the following trigger conditions:
Cron Triggers
Trigger jobs based on a Cron schedule.
Storage Event Triggers
Trigger jobs after objects are created or modified in a storage location such as a cloud bucket.
Automations
To create a trigger, define a special task that serves as a prototype. In response to a trigger condition met, this task will be submitted as a new job. Such tasks are referred to as automations.
Each automation has a task identifier, a version, and input parameters, just like regular tasks.
Automations also automatically provide a special trigger attribute that contains information about the event that initiated the task’s execution.
Automation Client
The Tilebox Workflows clients include sub-clients for inspecting automations and storage locations. Python also includes helpers for registering automation prototypes from task classes.
Listing Registered Automations
To list all registered automations, use the automation client.
from tilebox.workflows import Client
client = Client()
automations = client.automations()
automations = automations.all()
print(automations)ctx := context.Background()
client := workflows.NewClient()
automations, err := client.Automations.List(ctx)
if err != nil {
slog.ErrorContext(ctx, "failed to list automations", slog.Any("error", err))
return
}
for _, automation := range automations {
slog.InfoContext(ctx,
"automation",
slog.String("id", automation.ID.String()),
slog.String("name", automation.Name),
slog.Int("cron_triggers", len(automation.CronTriggers)),
slog.Int("storage_event_triggers", len(automation.StorageEventTriggers)),
)
}[
AutomationPrototype(
name='Run MyCronTask every hour at 15 minutes past the hour',
prototype=TaskSubmission(
cluster_slug='dev-cluster',
identifier=TaskIdentifier(name='MyCronTask', version='v0.0'),
input=b'{"message": "Hello"},
dependencies=[],
display='MyCronTask',
max_retries=0),
storage_event_triggers=[],
cron_triggers=[CronTrigger(schedule='15 * * * *')],
)
]Registering Automations
To register an automation from code, use the Python automation client’s create_*_automation methods for each trigger type. You can also create and manage automations in the Tilebox Console. Refer to the documentation for each trigger type for more details.
Overview in the Tilebox Console
You can also use the Tilebox Console to manage automations. Visit the automations section to check it out.

You can also register new automations or edit and delete existing ones directly from the console.
