Skip to main content
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.
PUT /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.