Utilizatori

Actualizare profil

Sincronizare nume, contacte și descriere agent

Sincronizează datele agenților din CRM-ul tău — nume, descriere, rețele sociale și setări de contact.

Actualizează profilul agentului

Identifică agentul după externalId (din CRM-ul tău) sau id (din Rentix).

const response = await fetch('https://crm.rentix.md/api/v1/users', {
  method: 'PUT',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    externalId: 'agent-001',
    name: 'Ion Popescu',
    description: 'Agent imobiliar experimentat. Lucrez cu proprietăți rezidențiale și comerciale.',
    instagram: 'https://instagram.com/ion.popescu',
    settings: {
      contact_phone: true,
      contact_whatsapp: true,
      contact_telegram: true
    }
  })
});

const result = await response.json();
console.log(`Actualizat agentul #${result.id}`);
Răspuns
{
  "id": 1,
  "externalId": "agent-001",
  "updated": true
}

Parametri cerere

Identificare

Indică unul din parametri:

CâmpTipDescriere
idnumberID intern Rentix
externalIdstringID-ul tău din CRM (până la 255 caractere)
Transmite idsauexternalId, nu ambele simultan.

Profil

CâmpTipDescriere
namestringNumele agentului
descriptionstring/objectDescrierea profilului
avatarobject/nullAvatarul agentului (vezi mai jos)

Format câmp avatar:

FormatExempluDescriere
După URL{ "url": "https://..." }Auto-import după URL
După internal ID{ "id": 123 }Fișier deja încărcat
GoleștenullȘterge avatarul

Rețele sociale

CâmpFormat
instagramhttps://instagram.com/username
youtubehttps://youtube.com/...
tiktokhttps://tiktok.com/@username

Setări contacte

Determină ce metode de contact sunt afișate pe anunțurile agentului.

CâmpDescriere
contact_phoneAfișează telefonul
contact_whatsappAfișează butonul WhatsApp
contact_viberAfișează butonul Viber
contact_telegramAfișează butonul Telegram
{
  "settings": {
    "contact_phone": true,
    "contact_whatsapp": true,
    "contact_viber": false,
    "contact_telegram": true
  }
}

Descriere multilingvă

Indică descrierea în mai multe limbi — sistemul va afișa cea potrivită în funcție de limba utilizatorului.

{
  "externalId": "agent-001",
  "description": {
    "ru": "Опытный агент по недвижимости. Работаю с жилой и коммерческой недвижимостью.",
    "en": "Experienced real estate agent. I work with residential and commercial properties.",
    "ro": "Agent imobiliar experimentat. Lucrez cu proprietăți rezidențiale și comerciale."
  }
}
Dacă transmiți un string în loc de obiect, acesta va fi folosit pentru toate limbile.

Actualizare bulk

Actualizează mai mulți agenți într-o singură cerere. Fiecare operație trebuie să conțină câmpul op:

const response = await fetch('https://crm.rentix.md/api/v1/users/bulk', {
  method: 'POST',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    operations: [
      {
        op: 'upsert',
        externalId: 'agent-001',
        name: 'Ion Popescu',
        settings: { contact_whatsapp: true }
      },
      {
        op: 'upsert',
        externalId: 'agent-002',
        name: 'Maria Ionescu',
        settings: { contact_telegram: true }
      }
    ]
  })
});

const result = await response.json();
console.log(`Actualizați: ${result.summary.succeeded} din ${result.summary.total}`);
Răspuns
{
  "results": [
    { "op": "upsert", "externalId": "agent-001", "id": 1, "success": true },
    { "op": "upsert", "externalId": "agent-002", "id": 2, "success": true }
  ],
  "summary": {
    "total": 2,
    "succeeded": 2,
    "failed": 0
  }
}

O eroare într-o operație nu oprește celelalte. Verifică success pentru fiecare rezultat:

Răspuns cu eroare
{
  "results": [
    { "op": "upsert", "externalId": "agent-001", "id": 1, "success": true },
    {
      "op": "upsert",
      "externalId": "agent-002",
      "id": null,
      "success": false,
      "error": {
        "statusCode": 400,
        "body": {
          "error": "Invalid phone number format",
          "error_code": "VALIDATION_ERROR"
        }
      }
    }
  ],
  "summary": { "total": 2, "succeeded": 1, "failed": 1 }
}

Încarcă avatarul agentului

Cea mai simplă metodă — transmite URL-ul imaginii direct la actualizarea profilului:

Node.js
await fetch('https://crm.rentix.md/api/v1/users', {
  method: 'PUT',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    externalId: 'agent-001',
    avatar: { url: 'https://placehold.co/200x200/jpg?text=Avatar' }
  })
});

Dacă fișierul este deja încărcat, indică ID-ul său:

{
  "externalId": "agent-001",
  "avatar": { "id": 123 }
}

Pentru a șterge avatarul, transmite null:

{
  "externalId": "agent-001",
  "avatar": null
}

Erori frecvente

EroareCauzăSoluție
User identifier requiredNu a fost transmis id sau externalIdAdaugă unul din identificatori
Cannot use both id and externalIdAu fost transmiși ambii identificatoriFolosește doar unul
User not foundAgentul nu există sau nu e în agenția taVerifică ID-ul și asigură-te că agentul e invitat
External ID already linkedAcest external ID e deja la alt agentFolosește un ID unic
Copyright © 2026