Объявления

Smart Create

Создание объявлений из текстового описания и фото с помощью ИИ

Smart Create позволяет создать объявление из текстового описания и фотографий. ИИ анализирует входные данные, извлекает характеристики объекта (тип, площадь, цена, удобства) и автоматически создаёт структурированное объявление.

Зачем использовать Smart Create

Вместо ручного маппинга каждого поля из вашей CRM в формат Rentix — отправьте текст описания и фотографии, система сделает всё сама.

ПодходЧто вы отправляетеЧто получаете
Стандартный upsertВсе поля вручнуюОбъявление с вашими данными
Smart createТекст + фотоОбъявление с данными от ИИ

Создайте объявление из описания

Отправьте текстовое описание и хотя бы одну фотографию. API создаёт фоновую задачу и возвращает ответ сразу.

const response = await fetch('https://crm.rentix.md/api/v1/listings/smart', {
  method: 'POST',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    description: 'Сдаётся уютная 2-комнатная квартира, 65 м², этаж 3/9. Евроремонт, тёплые полы, автономное отопление. Цена 500 евро/мес.',
    files: [
      { url: 'https://example.com/photo1.jpg', externalFileId: 'apt-001-photo-1' },
      { url: 'https://example.com/photo2.jpg', externalFileId: 'apt-001-photo-2' },
      { url: 'https://example.com/photo3.jpg', externalFileId: 'apt-001-photo-3' }
    ],
    externalId: 'apt-001',
    targetStatus: 'active'
  })
});

const result = await response.json();
console.log(`Job created: ${result.jobId}, status: ${result.status}`);
Response
{
  "jobId": 789,
  "status": "pending",
  "externalId": "apt-001"
}

Запрос возвращается сразу с jobId. Объявление создаётся асинхронно — отслеживайте статус задачи, чтобы узнать, когда оно будет готово.


Параметры запроса

Обязательные

ПолеТипОписание
descriptionstringОписание объекта (40–2000 символов)
filesarray1–20 фотографий (см. форматы файлов)

Необязательные

ПолеТипОписание
externalIdstringВаш ID из CRM (до 255 символов)
targetStatusenumdraft или active (по умолчанию: draft)
userobject{ userId } или { externalUserId } — привязать к агенту
formOverridesobjectПереопределить поля, извлечённые ИИ (см. ниже)
applyAnalysisbooleanПрименить анализ фото ИИ (по умолчанию: true)
sanitizeAttributesbooleanТихо убирать невалидные атрибуты (по умолчанию: false)

Переопределите результаты ИИ

Если ИИ неверно определил некоторые поля, используйте formOverrides для их исправления. Переопределяются только указанные поля — остальные берутся из анализа ИИ.

{
  "description": "Сдаётся квартира...",
  "files": [{ "url": "https://example.com/photo.jpg" }],
  "formOverrides": {
    "announcementType": "rent",
    "propertyType": "residential",
    "propertySecondaryType": "apartment",
    "announcementValue": 500,
    "announcementCurrency": "EUR"
  }
}
formOverrides принимает те же поля, что и стандартный upsert, кроме announcementDescription, announcementStatus и files — ими управляет smart create.

Отслеживайте статус задачи

Smart create работает асинхронно. После получения jobId проверяйте статус:

Node.js
const response = await fetch(
  `https://crm.rentix.md/api/v1/job/status?id=${result.jobId}`,
  { headers: { 'Authorization': 'ApiKey YOUR_API_KEY' } }
);
const job = await response.json();

if (job.status === 'completed') {
  console.log('Listing created:', job.resultData.announcementId);
}
Completed Job
{
  "id": 789,
  "type": "announcement_smart_create",
  "status": "completed",
  "resultData": {
    "announcementId": 42,
    "finalStatus": "active"
  }
}

Подробнее об отслеживании задач — в разделе Асинхронные задачи.


Smart Create в bulk-операциях

Вы можете включать операции smart_create в bulk-запросы:

{
  "operations": [
    {
      "op": "smart_create",
      "description": "Сдаётся квартира...",
      "files": [{ "url": "https://example.com/photo.jpg" }],
      "externalId": "apt-001",
      "targetStatus": "active"
    },
    {
      "op": "smart_create",
      "description": "Продаётся дом...",
      "files": [{ "url": "https://example.com/house.jpg" }],
      "externalId": "house-001"
    }
  ]
}

Частые ошибки

ОшибкаПричинаРешение
description too shortОписание менее 40 символовДобавьте больше деталей
files are requiredНе переданы фотографииДобавьте хотя бы 1 фото
Too many filesБолее 20 фотографийСократите до 20 или менее
Unknown field in formOverridesНедопустимое поле в переопределенияхПроверьте допустимые поля

Следующие шаги

Copyright © 2026