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.

## Create Workflow — POST /v1/workflows

> **What this endpoint does:** Create a new workflow.

**Endpoint:** POST `https://api.getbluejay.ai/v1/workflows`
**Auth:** `X-API-Key` header
**Content-Type:** application/json

### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| X-API-Key | string | API key required to authenticate requests. |
| name | string | Name of the workflow |
| workflow | object | Input model for workflow data (with optional position fields) |

Review the full parameter list at https://docs.getbluejay.ai/api-reference/endpoint/create-workflows and include any optional parameters (e.g., `agent_ids`, `enabled_for_evaluation`) that serve your integration's use case and align with Bluejay's testing and monitoring capabilities.

### Request Body (required fields)
```json
{
  "name": "example_name",
  "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"
      }
    ]
  }
}
```

Refer to the full schema at https://docs.getbluejay.ai/api-reference/endpoint/create-workflows. Include optional fields that serve the goal of setting up for testing and monitoring on Bluejay.

### Example
**POST with body:**
```python
import requests

def create_workflow(payload: dict, api_key: str) -> dict:
    url = "https://api.getbluejay.ai/v1/workflows"
    headers = {"X-API-Key": api_key}
    response = requests.post(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.
POST /v1/workflows creates a workflow for an agent (name, workflow object with nodes and edges, optional agent_ids and enabled_for_evaluation). This route is deprecated for new integrations. For conversation-path workflows (React Flow for simulations), use Create workflow (POST /v1/workflow) and the Workflows cookbook. See the OpenAPI schema on this page for the request shape.