Skip to navigation

Edit and manage workplans

Learn how to modify, update, and maintain your existing workplans.

Once you’ve created workplans, you may need to modify your workplans to improve or add new requirements to the analysis. This guide explains how to edit and manage your existing workplans.

Editing a workplan

You can modify an existing workplan using a text prompt that describes the changes you want to make. Note that modifying an existing workplan completely replaces the execution plan.

import requests
BASE_URL = "https://alfa.boosted.ai/client"
API_KEY = "YOUR_API_KEY_HERE"
headers = {"x-api-key": API_KEY, "Content-Type": "application/json"}
def edit_workplan(workplan_id, prompt, args=None):
"""Edit an existing workplan with a new prompt."""
url = f"{BASE_URL}/v2/workplans/{workplan_id}/edit"
payload = {"prompt": prompt}
response = requests.patch(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
success = data.get("success", False)
new_status = data.get("status")
if success:
print(f"Workplan {workplan_id} updated successfully")
print(f"New status: {new_status}")
else:
print("Workplan update failed")
return success
else:
print(f"Error: {response.status_code}, {response.text}")
return False
# Edit a workplan with a refined prompt
workplan_id = "your-workplan-id"
new_prompt = "Analyze Apple's stock performance over the last 3 months, include earnings data, and show both price trends and volume analysis"
success = edit_workplan(workplan_id, new_prompt)

Editing with document references

You can also update workplans to reference new or different documents.

def edit_workplan_with_documents(workplan_id, prompt, document_ids):
"""Edit a workplan to reference specific documents."""
args = {}
for i, doc_id in enumerate(document_ids):
args[f"doc{i+1}"] = {
"id": doc_id,
"type": "custom_document"
}
# Create a prompt that references the documents
document_prompt = prompt
for i in range(len(document_ids)):
document_prompt = document_prompt.replace(f"{{doc{i+1}}}", f"{{doc{i+1}}}")
return edit_workplan(workplan_id, document_prompt, args)
# Edit workplan to use new quarterly reports
new_docs = ["file_id_1", "file_id_2", "file_id_3"]
new_prompt = "Analyze the quarterly reports in {doc1}, {doc2}, and {doc3}. Compare performance across quarters and identify trends."
success = edit_workplan_with_documents(workplan_id, new_prompt, new_docs)

Monitoring workplan

Get comprehensive information about a workplan, including its current status and exucution plan.

def get_workplan_details(workplan_id):
"""Get detailed information about a workplan."""
url = f"{BASE_URL}/v2/workplans/{workplan_id}/view"
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
print(f"Workplan ID: {data.get('workplan_id')}")
print(f"Plan Status: {data.get('plan_status')}")
execution_plan = data.get("execution_plan")
if execution_plan:
nodes = execution_plan.get("nodes", [])
print(f"Execution Plan: {len(nodes)} nodes")
for i, node in enumerate(nodes):
tool_name = node.get("tool_name", "Unknown")
description = node.get("description", "No description")
print(f" Node {i+1}: {tool_name} - {description}")
return data
else:
print(f"Error: {response.status_code}, {response.text}")
return None
# Get workplan details
workplan_info = get_workplan_details(workplan_id)

Listing all workplans

View all your workplans to see which ones need updates or maintenance. Workplans are listed by creation date.

def list_all_workplans():
"""List all workplans with their current status."""
url = f"{BASE_URL}/v2/workplans"
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
workplans = data.get("workplans", [])
print(f"Total workplans: {len(workplans)}")
for workplan in workplans:
print(f"\nWorkplan {workplan["workplan_id"]}:")
print(f" Name: {workplan.get("workplan_name", "Unnamed")}")
print(f" Description: {workplan.get("workplan_description", "No description")}")
print(f" Status: {workplan.get("workplan_status", "Unknown")}")
print(f" Created: {created_at = workplan.get("created_at", "Unknown")}")
return workplans
else:
print(f"Error: {response.status_code}, {response.text}")
return None
# List all workplans
all_workplans = list_all_workplans()

Deleting workplans

If you no longer need a workplan, you can delete it permanently.

def delete_workplan(workplan_id):
"""Permanently delete a workplan."""
url = f"{BASE_URL}/v2/workplans/{workplan_id}/delete"
response = requests.delete(url, headers=headers)
if response.status_code == 200:
data = response.json()
success = data.get("success", False)
if success:
print(f"Workplan {workplan_id} deleted successfully")
else:
print("Workplan deletion failed")
return success
else:
print(f"Error: {response.status_code}, {response.text}")
return False
# Delete a workplan (use with caution!)
delete_workplan(workplan_id)

Deleting a workplan is permanent and cannot be undone.

Example: Finding workplans by pattern matching

1

Get all workplans

First, retrieve the list of all your workplans

2

Filter by criteria

Search for workplans that match certain patterns:

# Get all available workplans
all_workplans = list_all_workplans()
# Filter workplans by name pattern
earnings_workplans, recent_workplans = [], []
if all_workplans:
earnings_workplans = [a for a in all_workplans if "earnings" in a["workplan_name"].lower()]
recent_workplans = [a for a in all_workplans if a["created_at"] > "2025-06-30"]
# Display filtered results
print(f"\nFound {len(earnings_workplans)} earnings-related workplans:")
for workplan in earnings_workplans:
print(f"- {workplan['workplan_name']} (ID: {workplan['workplan_id']})")
print(f"\nFound {len(recent_workplans)} workplans created since July 2025:")
for workplan in recent_workplans:
print(f"- {workplan['workplan_name']} (created: {workplan['created_at']})")

Next steps

Now that you understand how to edit and manage workplans, you can:

Workplan editing is a powerful feature that allows you to continuously improve your analysis capabilities. Regular updates can lead to better results and more efficient token usage.