Skip to main content

Overview

ELITEA offers two primary integration patterns:

Authentication

All ELITEA API requests require authentication using a Personal Access Token (PAT).

Obtaining a Personal Access Token

  1. Navigate to SettingsPersonal Access Tokens in ELITEA
  2. Click Create Token
  3. Provide a descriptive name (e.g., “API Integration”)
  4. Copy and securely store the generated token
  • Store your PAT securely using environment variables or secret management
  • Never expose tokens in client-side code or version control
  • Rotate tokens periodically for enhanced security

Authentication Header

Include the token in all API requests:
curl Example:

Base URLs

Required Identifiers

Before making API calls, gather these identifiers from your ELITEA instance:

Pattern 1: Conversation-Based Integration

Use this pattern for multi-turn interactions where context needs to be maintained across messages.

Step 1: Create a Conversation

Creates a new conversation container for messages. Endpoint:
Request Body:
curl Example:
Response:
Store id as conversation_id and uuid as conversation_uuid for subsequent API calls.

Step 2: Add an Agent Participant

Adds an AI agent to the conversation. Endpoint:
Request Body:
curl Example:
Response:
Store id as participant_id for sending messages.

Step 3: Send a Message

Sends a message to the conversation and receives the agent’s response. Endpoint:
Request Body:
curl Example:
Response:

Pattern 2: Direct Prediction (Single-Shot)

Use this pattern for one-off agent interactions without managing conversation state. Endpoint:
Request Body:

Synchronous Mode (Default)

The request waits for the agent to complete processing and returns the response. curl Example:

Asynchronous Mode

For long-running tasks, use async mode to avoid timeouts. The request returns immediately with a task ID. curl Example:
Response (Async):
Synchronous (async_mode: false):
  • Quick agent responses (< 30 seconds)
  • Simple Q&A without complex processing
  • When you need the response immediately
Asynchronous (async_mode: true):
  • Long-running agent tasks
  • Complex processing (code review, document analysis)
  • Webhook-based integrations
  • Avoiding HTTP timeouts
  • JIRA automation triggers
  • GitHub/GitLab webhook integrations (PR reviews)
  • Simple Q&A without context
  • One-time processing tasks

Additional Endpoints

Check Existing Conversation

Search for an existing conversation by name. Endpoint:
curl Example:
Response:

Get Conversation Details

Retrieve full details of a conversation including participants. Endpoint:
curl Example:
Response:

Find Agent Participant ID

When reusing an existing conversation, you need to find the agent’s participant ID from the participants array. Filter Logic (pseudo-code):
JavaScript Example:
Python Example:
When building integrations that map external identifiers (like JIRA ticket IDs or Teams chat IDs) to ELITEA conversations:
  1. Store the mapping: external_id → (conversation_id, conversation_uuid)
  2. On new message, check if mapping exists
  3. If exists: Get conversation details →†’ Find agent participant I→ → Send message
  4. If not: Create conversation →†’ Add agen→ → Store mapp→ng → Send message

Handling Attachments

Step 1: Configure Attachment Storage

Before uploading files, you must register an artifact toolkit as a participant and then designate it as the conversation’s attachment storage. This is a two-part setup. 1a. Add the artifact toolkit as a participant: Endpoint:
Request Body:
Save the returned id as {{ATTACHMENT_PARTICIPANT_ID}}. 1b. Set that participant as the attachment storage: Endpoint:
Request Body:
curl Example:

Step 2: Upload Attachment

Upload a file to the conversation. Endpoint:
curl Example (file upload):
Postman Configuration:
  1. Method: POST
  2. URL: {{BASE_URL}}elitea_core/attachments/prompt_lib/{{PROJECT_ID}}/{{CONVERSATION_ID}}
  3. Headers: Authorization: Bearer {{YOUR_PAT}}
  4. Body: Select form-data
Programmatic Upload (Base64 Content): When uploading files programmatically (e.g., from Power Automate or custom code), use multipart/form-data with base64 content:
Python Example (Programmatic Upload):
Response:

Step 3: Reference Attachments in Message

Include uploaded attachments when sending a message. Request Body:
Dynamic Construction: When building attachments_info dynamically (e.g., in Power Automate or loops):
ELITEA supports common file types including:
  • Images: PNG, JPEG, GIF, WebP
  • Documents: PDF, DOCX, TXT, MD
  • Data: CSV, JSON, XML
  • Code: Python, JavaScript, and other source files
Check your agent’s configuration for specific file size limits.

Error Handling

Common HTTP Status Codes

Troubleshooting

  • Test API requests independently using Postman or curl
  • Verify all IDs are correct and from the same project
  • Check that the Bearer token prefix is included
  • Ensure Content-Type header is set to application/json

Integration Patterns

Conversation Mapping Pattern

When integrating external systems (Teams, Slack, JIRA, Email) with ELITEA, you need a strategy to map external identifiers to ELITEA conversations. Pattern Overview:
Implementation Steps:
  1. Store mapping when creating a conversation:
  2. Lookup mapping on each new message:
  3. If exists: Get conversation details → Find agent participant → Send message
  4. If not exists: Create conversation → Add agent → Store mapping → Send message

Naming Convention Patterns

Use consistent conversation naming for easy identification and search: Search by Name:

Stateless vs Stateful Integrations

Choose the right pattern based on your use case:
Persistent conversations accumulate history. For long-running integrations:
  • Consider periodic conversation reset (e.g., daily/weekly)
  • Use conversation naming with timestamps: Support-{externalId}-{date}
  • Monitor agent performance as context grows

Complete Integration Examples

Example: JIRA Issue Review Automation

Example: Multi-Turn Support Conversation


API Reference Summary