Skip to main content
Workflows enable hybrid automation by combining the precision of scripting with the adaptability of AI agents. They allow you to script the predictable parts of your automation while leveraging agents only when needed, resulting in more reliable and cost-effective automations. Given a script you want to set up as a workflow:
my_scraping_workflow.py
from notte_sdk import NotteClient, actions
notte = NotteClient()

def run(url: str):
    with notte.Session() as session:
        session.execute(actions.Goto(url=url))
        return session.scrape()
You can create, update and run workflows:
play_with_workflow.py
from notte_sdk import NotteClient

notte = NotteClient()

# Create a new workflow from our local Python file
workflow = notte.Workflow(
    workflow_path="my_scraping_workflow.py",
    name="My Scraping Workflow",
    description="A workflow for scraping the web"
)
print(f"Workflow created with ID: {workflow.response.workflow_id}. You can reference it using `notte.Workflow(<workflow_id>)`")

# Run the workflow, providing variables
response = workflow.run(url="https://shop.notte.cc/")
print(f"Workflow completed with result: {response.result}")

# Update workflow with new version, from our local python file
workflow.update(workflow_path="my_scraping_workflow.py")

# List all workflows
workflows = notte.workflows.list()

Parameters

workflow_id
str | None
default:"None"
decryption_key
str | None
default:"None"
workflow_path
str
required
The path to the workflow to upload.
name
str | None
description
str | None
shared
bool
I