This API provides access to Cortex Reply's genAI powered task board automation service. It analyzes standup transcripts and suggests updates to your task board based on the content.

API Specification

Mock Endpoint

POST https://softwarehut.cortexreply.ai/mockUpdateBoard

Description

This is a mock endpoint that always returns the example response shown on below on this page.

Authentication

The mock endpoint requires the same authentication as the main endpoint.

Request Headers

Content-Type: application/json
x-api-key: your_api_key
                

Request Body

Any valid JSON object will be accepted. The request body content is ignored as this endpoint always returns the same response, however the related example request is provided for reference.

Main Endpoint

POST https://softwarehut.cortexreply.ai/updateBoard

Description

This endpoint processes standup transcripts and provides AI-generated suggestions for updating your task board.

Authentication

All API requests require authentication using an API key provided in the x-api-key header.

Request Headers

Content-Type: application/json
x-api-key: your_api_key
                

Request

Request Body JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["board", "transcript"],
  "properties": {
    "board": {
      "type": "object",
      "required": ["tickets"],
      "properties": {
        "tickets": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["ticket_id", "owner_name", "title", "description", "status"],
            "properties": {
              "ticket_id": { "type": "integer" },
              "owner_name": { "type": "string" },
              "title": { "type": "string" },
              "description": { "type": "string" },
              "status": { 
                "type": "string", 
                "enum": ["todo", "inProgress", "inReview", "done"] 
              }
            }
          }
        }
      }
    },
    "transcript": { "type": "string" }
  }
}
                

Example Request

{
  "board": {
    "tickets": [
      {
        "ticket_id": 1,
        "owner_name": "Alice",
        "title": "Fix login bug",
        "description": "Resolve issue with OAuth login.",
        "status": "todo"
      },
      {
        "ticket_id": 2,
        "owner_name": "Bob",
        "title": "Implement user profile page",
        "description": "Create a new page for user profiles with edit functionality.",
        "status": "inProgress"
      },
      {
        "ticket_id": 3,
        "owner_name": "Charlie",
        "title": "Database optimization",
        "description": "Optimize database queries for better performance",
        "status": "inReview"
      }
    ]
  },
  "transcript": "**Alice**: I finished fixing the login bug. It's ready for review now.\n\n**Bob**: Still working on the user profile page. Made good progress on the edit functionality. I've decided to use PayloadJS to manage users.\n\n**Charlie**: The database optimization is complete and ready for deployment.\n\n**Dave**: We need a notification system, I'll work on that today."
}
                        

Response

Response JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["suggestions"],
  "properties": {
    "suggestions": {
      "type": "array",
      "items": {
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": ["action", "ticket_id", "status"],
            "properties": {
              "action": { "type": "string", "enum": ["move"] },
              "ticket_id": { "type": "integer" },
              "status": { 
                "type": "string", 
                "enum": ["todo", "inProgress", "inReview", "done"] 
              }
            }
          },
          {
            "type": "object",
            "required": ["action", "ticket_id", "title", "description"],
            "properties": {
              "action": { "type": "string", "enum": ["modify"] },
              "ticket_id": { "type": "integer" },
              "title": { "type": "string" },
              "description": { "type": "string" }
            }
          },
          {
            "type": "object",
            "required": ["action", "title", "description", "owner_name", "status"],
            "properties": {
              "action": { "type": "string", "enum": ["create"] },
              "title": { "type": "string" },
              "description": { "type": "string" },
              "owner_name": { "type": "string" },
              "status": { 
                "type": "string", 
                "enum": ["todo", "inProgress", "inReview", "done"] 
              }
            }
          }
        ]
      }
    }
  }
}
                

Example Response

The API returns a JSON object containing an array of suggestions based on the transcript. Each suggestion has a specific action type: move, modify, or create.

Complete Response Example Multiple suggestion types
{
  "suggestions": [
    {
      "action": "move",
      "ticket_id": 1,
      "status": "inReview"
    },
    {
      "action": "modify",
      "ticket_id": 2,
      "title": "Implement user profile page",
      "description": "Create a new page for user profiles with edit functionality, this will use PayloadJS"
    },
    {
      "action": "create",
      "title": "Implement notification system",
      "description": "Implementation of user notification system",
      "owner_name": "Dave",
      "status": "inProgress"
    },
    {
      "action": "move",
      "ticket_id": 3,
      "status": "done"    }
  ]
}
                        

Response Types

The API supports three different action types in its suggestions. Each action type has a specific schema as defined below:

Move Action Updates ticket status

Used when a ticket should be moved to a different status column on the board.

{
  "action": "move",
  "ticket_id": 1,         // ID of the existing ticket to move
  "status": "inProgress"  // New status: "todo", "inProgress", "inReview", or "done"
}
                            
Modify Action Updates ticket title and description

Used when a ticket's title or description need to be updated with new information.

{
  "action": "modify",
  "ticket_id": 2,         // ID of the existing ticket to modify
  "title": "Updated ticket title",  // New title for the ticket
  "description": "Updated description with more details about the implementation"
}
                            
Create Action Creates a new ticket

Used when a new task is mentioned that doesn't exist on the board yet.

{
  "action": "create",
  "title": "New Feature Task",           // Title of the new ticket
  "description": "Implement new feature based on customer feedback",
  "owner_name": "Charlie",               // Person assigned to the ticket
  "status": "todo"                       // Initial status: "todo", "inProgress", "inReview", or "done"
}
                            

Empty Response

When no updates are needed, the API returns an empty suggestions array:

{
  "suggestions": []
}
                        

Error Handling

The API uses standard HTTP status codes to indicate the success or failure of a request.

401 Unauthorized
{
  "error": "Unauthorized",
  "message": "Invalid or missing API key"
}
                        
400 Bad Request
{
  "error": "Bad Request",
  "message": "Request body is in an incorrect format"
}