> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiployees.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Изпращане на съобщение

> Изпращане на съобщение в съществуваща беседа и получаване на отговор от асистента

Този endpoint изпраща потребителско съобщение към съществуваща беседа и връща отговора на асистента. Асистентът обработва съобщението използвайки конфигурирания AI модел и всички налични инструменти.

### Параметри на пътя

<ParamField path="uuid" type="string" required>
  Уникалният UUID идентификатор на беседата
</ParamField>

### Тяло на заявката

<ParamField body="message" type="string" required>
  Съобщението на потребителя за изпращане към асистента. Максимална дължина: 2000 символа.
</ParamField>

### Полета на отговора

<ResponseField name="status" type="boolean">
  Показва дали заявката е била успешна
</ResponseField>

<ResponseField name="message" type="string">
  Отговорът на асистента към съобщението на потребителя
</ResponseField>

<ResponseField name="function_calls" type="array">
  Масив от извиквания на функции, направени от асистента по време на обработката на съобщението. Празен масив, ако не са извиквани функции.

  <Expandable title="Свойства на обекта за извикване на функция">
    <ResponseField name="name" type="string">
      Името на функцията, която е била извикана
    </ResponseField>

    <ResponseField name="arguments" type="object">
      Аргументите, предадени на функцията
    </ResponseField>

    <ResponseField name="result" type="object">
      Резултатът, върнат от функцията
    </ResponseField>
  </Expandable>
</ResponseField>

### Отговори при грешки

<ResponseField name="status" type="boolean">
  Ще бъде `false` когато възникне грешка
</ResponseField>

<ResponseField name="error" type="string">
  Съобщение за грешка. Възможни стойности:

  * `Conversation not found` - Предоставеният UUID не съответства на никоя беседа
  * `Insufficient balance. Please top up your account.` - Балансът на акаунта на собственика на асистента е твърде нисък
  * `Failed to process message: [детайли]` - Възникна грешка при обработката на съобщението
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://call.aiployees.com/api/conversations/7c9e6679-7425-40de-944b-e07fc1f90ae7/messages" \
    -H "Content-Type: application/json" \
    -d '{
      "message": "I would like to schedule a demo for next week"
    }'
  ```

  ```javascript JavaScript theme={null}
  const conversationId = '7c9e6679-7425-40de-944b-e07fc1f90ae7';

  const response = await fetch(
    `https://call.aiployees.com/api/conversations/${conversationId}/messages`,
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        message: 'I would like to schedule a demo for next week'
      })
    }
  );

  const data = await response.json();
  console.log(data.message);
  ```

  ```python Python theme={null}
  import requests

  conversation_id = '7c9e6679-7425-40de-944b-e07fc1f90ae7'

  response = requests.post(
      f'https://call.aiployees.com/api/conversations/{conversation_id}/messages',
      json={
          'message': 'I would like to schedule a demo for next week'
      }
  )

  data = response.json()
  print(data['message'])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "status": true,
    "message": "I'd be happy to help you schedule a demo! I have availability on Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which time works best for you?",
    "function_calls": []
  }
  ```

  ```json 200 Success (With Function Calls) theme={null}
  {
    "status": true,
    "message": "I've checked our calendar and found several available slots for next week. I can offer you Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which would you prefer?",
    "function_calls": [
      {
        "name": "check_calendar_availability",
        "arguments": {
          "start_date": "2025-01-13",
          "end_date": "2025-01-17"
        },
        "result": {
          "available_slots": [
            "2025-01-13 14:00",
            "2025-01-15 10:00",
            "2025-01-17 15:00"
          ]
        }
      }
    ]
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "status": false,
    "error": "Conversation not found"
  }
  ```

  ```json 400 Insufficient Balance theme={null}
  {
    "status": false,
    "error": "Insufficient balance. Please top up your account."
  }
  ```

  ```json 400 Processing Error theme={null}
  {
    "status": false,
    "error": "Failed to process message: Connection timeout"
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "The message field is required.",
    "errors": {
      "message": ["The message field is required."]
    }
  }
  ```
</ResponseExample>

## Ценообразуване

Всяко потребителско съобщение в беседа чрез **widget** струва **\$0.01**. Тестовите беседи са безплатни.

## Извиквания на функции

Асистентът може да изпълнява функции по време на обработката на съобщенията, като:

* **Операции с календар**: Проверка на наличност, резервиране на срещи
* **Заявки към база знания**: Търсене в документация или ЧЗВ
* **Персонализирани интеграции**: Извикване на вашите конфигурирани webhook endpoints

Резултатите от извикването на функции са включени в отговора, така че можете да покажете релевантна информация на потребителя или да проследите предприетите действия.

## Най-добри практики

1. **Обработвайте грешките елегантно**: Показвайте удобни за потребителя съобщения при възникване на грешки
2. **Показвайте състояния на зареждане**: Асистентът може да отнеме няколко секунди за отговор, особено при изпълняване на функции
3. **Запазете ID на беседата**: Съхранете UUID на беседата, за да позволите на потребителите да възобновят беседи
4. **Спазвайте ограниченията за честота**: Въведете подходящи забавяния между съобщенията при необходимост
