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
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
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.
{
"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:
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"
}
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"
}
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.
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
{
"error": "Bad Request",
"message": "Request body is in an incorrect format"
}