Anunțuri

Smart Create

Crearea anunțurilor din descrieri text și fotografii cu ajutorul AI

Smart Create permite crearea unui anunț dintr-o descriere text și fotografii. AI analizează datele, extrage detaliile proprietății (tip, suprafață, preț, dotări) și creează automat un anunț structurat.

De ce să folosești Smart Create

În loc să mapezi manual fiecare câmp din CRM-ul tău în formatul Rentix — trimite descrierea text și fotografiile, sistemul face restul.

AbordareCe trimițiCe primești
Upsert standardToate câmpurile manualAnunț cu datele tale
Smart createText + fotografiiAnunț cu date extrase de AI

Creează un anunț din descriere

Trimite o descriere text și cel puțin o fotografie. API-ul creează un job în fundal și returnează răspunsul imediat.

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: 'Se dă în chirie apartament confortabil cu 2 camere, 65 m², etajul 3/9. Renovare euro, podele calde, încălzire autonomă. Preț 500 euro/lună.',
    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"
}

Cererea returnează imediat un jobId. Anunțul este creat asincron — urmărește statusul jobului pentru a afla când este gata.


Parametrii cererii

Obligatorii

CâmpTipDescriere
descriptionstringDescrierea proprietății (40–2000 caractere)
filesarray1–20 fotografii (vezi formatele fișierelor)

Opționali

CâmpTipDescriere
externalIdstringID-ul tău din CRM (până la 255 caractere)
targetStatusenumdraft sau active (implicit: draft)
userobject{ userId } sau { externalUserId } — atribuie unui agent
formOverridesobjectSuprascrie câmpurile extrase de AI (vezi mai jos)
applyAnalysisbooleanAplică analiza foto AI (implicit: true)
sanitizeAttributesbooleanElimină silențios atributele invalide (implicit: false)

Suprascrie rezultatele AI

Dacă AI identifică greșit anumite câmpuri, folosește formOverrides pentru a le corecta. Doar câmpurile specificate sunt suprascrise — restul vin din analiza AI.

{
  "description": "Se dă în chirie apartament...",
  "files": [{ "url": "https://example.com/photo.jpg" }],
  "formOverrides": {
    "announcementType": "rent",
    "propertyType": "residential",
    "propertySecondaryType": "apartment",
    "announcementValue": 500,
    "announcementCurrency": "EUR"
  }
}
formOverrides acceptă aceleași câmpuri ca upsert-ul standard, cu excepția announcementDescription, announcementStatus și files — acestea sunt gestionate de smart create.

Urmărește statusul jobului

Smart create funcționează asincron. După primirea jobId, verifică statusul:

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"
  }
}

Pentru detalii complete despre urmărirea joburilor, vezi Joburi asincrone.


Smart Create în operații bulk

Poți include operații smart_create în cererile bulk:

{
  "operations": [
    {
      "op": "smart_create",
      "description": "Se dă în chirie apartament...",
      "files": [{ "url": "https://example.com/photo.jpg" }],
      "externalId": "apt-001",
      "targetStatus": "active"
    },
    {
      "op": "smart_create",
      "description": "Se vinde casă...",
      "files": [{ "url": "https://example.com/house.jpg" }],
      "externalId": "house-001"
    }
  ]
}

Erori frecvente

EroareCauzăSoluție
description too shortDescriere mai scurtă de 40 caractereAdaugă mai multe detalii
files are requiredNu au fost trimise fotografiiAdaugă cel puțin 1 fotografie
Too many filesMai mult de 20 fotografiiReduce la 20 sau mai puțin
Unknown field in formOverridesCâmp invalid în suprascriereaVerifică câmpurile permise

Pașii următori

Copyright © 2026