Integration Prompt for AI Agents
# Bluejay — Testing & Monitoring Platform for Conversational AI Agents
You are a senior backend engineer integrating the Bluejay API. Think step-by-step: first understand the endpoint, then plan the integration, then implement with minimal changes.
## Update Workflow — PUT /v1/update-workflow/{workflow_id}
> **What this endpoint does:** Update a specific workflow by ID.
**Endpoint:** PUT `https://api.getbluejay.ai/v1/update-workflow/{workflow_id}`
**Auth:** `X-API-Key` header
**Content-Type:** application/json
### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| workflow_id | string | |
| X-API-Key | string | API key required to authenticate requests. |
Review the full parameter list at https://docs.getbluejay.ai/api-reference/endpoint/update-workflows and include any optional parameters (e.g., `name`, `workflow`, `agent_ids`, `enabled_for_evaluation`) that serve your integration's use case and align with Bluejay's testing and monitoring capabilities.
### Request Body
```json
{
"name": "string",
"workflow": {
"nodes": [
{
"id": "string",
"type": "start",
"position": {
"x": 1.0,
"y": 1.0
},
"data": {
"label": "string",
"description": "string"
}
}
],
"edges": [
{
"id": "string",
"source": "string",
"target": "string",
"label": "string",
"type": "string"
}
]
},
"agent_ids": [
123
],
"enabled_for_evaluation": true
}
```
### Example
**PUT with body:**
```python
import requests
def update_workflow(workflow_id: str, payload: dict, api_key: str) -> dict:
url = f"https://api.getbluejay.ai/v1/update-workflow/{workflow_id}"
headers = {"X-API-Key": api_key}
response = requests.put(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
```
### Constraints
- Minimal changes — only add/change files needed for this integration.
- Match existing codebase patterns (naming, file structure, error handling).
- Include error handling for 422: Validation Error.
### Integration Checklist
Before writing code, verify:
1. Which module/service owns this API domain in the codebase?
2. What HTTP client and error-handling patterns does the project use?
3. Are there existing types/interfaces to extend?
Then implement the integration, export it, and confirm it compiles/passes lint.
/v1/update-workflow/{workflow_id} updates a workflow by ID (optional name, workflow structure, agent_ids, enabled_for_evaluation). This route is deprecated for new integrations.
For conversation-path workflows, use Update workflow (PUT /v1/workflow/{workflow_id}) with the React Flow graph format.
See the OpenAPI schema on this page for the request shape.